表示版本控制系统的抽象基类。
您可以通过创建一个从 VersionControlObject 派生的新类并应用 VersionControlAttribute 来添加对自定义 VCS 的支持。
using UnityEditor.VersionControl; using UnityEngine;
[VersionControl("Custom")] public class CustomVersionControlObject : VersionControlObject { public override void OnActivate() { Debug.Log("Custom VCS activated."); }
public override void OnDeactivate() { Debug.Log("Custom VCS deactivated."); } }
使用上面的示例,版本控制设置窗口中将显示一个名为“自定义”的新 VCS 选项。只有在激活 VersionControlObject 时,您才应执行 VCS 操作。OnActivate 和 OnDeactivate 方法会在您的类上被调用,以通知您的代码有关更改的信息。
任何必须在 Unity 会话之间持续存在的设置(例如,用户名或密码)都必须由底层 VCS 处理,使用 EditorUserSettings 或存储在文件中处理。这是因为 VersionControlObject 不会序列化到磁盘,并且每次 Unity 启动或激活 VCS 时都会创建一个新实例。
VersionControlObject 派生自 ScriptableObject。这使得 域重新加载 处理更简单。如果需要,您可以添加 OnEnable 方法来恢复状态。
您可以使用 AssetModificationProcessor 和 AssetPostprocessor.OnPostprocessAllAssets 从 Unity 获取通知,以了解它何时想要编辑、添加或删除资源。
其他资源:VersionControlAttribute、VersionControlManager、EditorUserSettings、ScriptableObject、AssetModificationProcessor、AssetPostprocessor。
isConnected | 测试 VersionControlObject 是否连接到底层版本控制系统。 |
GetExtension | 获取可选扩展对象。 |
OnActivate | 激活您的版本控制系统时调用。 |
OnDeactivate | 停用您的版本控制系统时调用。 |
Refresh | 当应丢弃缓存状态并应从底层 VCS 检索新状态时调用。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 移除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 加载新场景时不要销毁目标对象。 |
FindAnyObjectByType | 检索类型为 type 的任何活动加载的对象。 |
FindFirstObjectByType | 检索类型为 type 的第一个活动加载的对象。 |
FindObjectsByType | 检索类型为 type 的所有加载对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某些 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。 |
CreateInstance | 创建可脚本化对象的实例。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,以查看它们是否引用同一个对象。 |