版本:Unity 6(6000.0)
语言英语
  • C#

VersionControlObject.isConnected

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们都会阅读从用户处收到的每条建议的变更,并将在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议变更无法提交。请在几分钟内<a>重试</a>。感谢您抽出宝贵时间帮助我们提高 Unity 文档的质量。

关闭

取消

public bool isConnected;

说明

测试 VersionControlObject 是否连接到了底层版本控制系统。

您的 VersionControlObject 可能未连接的原因有很多。例如

  • 在建立连接之前,您的 VCS 可能需要配置。
  • OnActivate 可能会启动一个后台线程,该线程花一些时间连接。
  • 由于网络问题,连接可能断开。

在所有这些情况下,此属性将返回 false

using UnityEditor;
using UnityEditor.VersionControl;
using UnityEngine;

[VersionControl("Custom")] public class CustomVersionControlObject : VersionControlObject, ISettingsInspectorExtension { bool m_Active; bool m_IsConnected;

public override bool isConnected => m_IsConnected;

public void OnEnable() { // m_Active will be false if CustomVersionControlObject has just been activated. // It will be true if OnEnable was called after domain reload. In that case we want to reestablish connection. if (m_Active) Connect(); }

public void OnDisable() { // Let's assume that domain reload kills connection to underlying VCS. Disconnect(); }

public override void OnActivate() { m_Active = true; // Let's try to automatically establish connection to underlying VCS. // It will not work the first time CustomVersionControlObject is activated because username is not configured yet. // However it will work on subsequent Unity startup. Connect(); }

public override void OnDeactivate() { m_Active = false; Disconnect(); }

public void OnInspectorGUI() { var oldUsername = EditorUserSettings.GetConfigValue("vcCustomUsername"); var newUsername = EditorGUILayout.TextField("Username (hint: TestUser):", oldUsername); if (newUsername != oldUsername) EditorUserSettings.SetConfigValue("vcCustomUsername", newUsername);

EditorGUILayout.LabelField("Connected:", m_IsConnected ? "Yes" : "No");

if (GUILayout.Button("Connect")) Connect(); }

void Connect() { var username = EditorUserSettings.GetConfigValue("vcCustomUsername"); m_IsConnected = username == "TestUser"; }

void Disconnect() { m_IsConnected = false; } }