VersionControlObject
The abstract base class for representing a version control system.
Read time 5 minutesLast updated 5 days ago
Definition
- Type: Class
- Namespace: UnityEditor.VersionControl
- Assembly: UnityEditor.CoreModule
- Inherits from: ScriptableObject
public abstract class VersionControlObject : ScriptableObject
Remarks
You can add support for a custom VCS by creating a new class derived from VersionControlObject and applying the VersionControlAttribute.
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."); }}
Using the example above, a new VCS option called Custom will show up in Version Control settings window. You should only perform VCS operations when a VersionControlObject is activated. VersionControlObject.OnActivate and VersionControlObject.OnDeactivate methods are called on your class to notify your code about the change.
Any persistent settings that must survive between Unity sessions (for example, the username or password) must be handled either by the underlying VCS, by using EditorUserSettings, or stored in a file. This is because the VersionControlObject is not serialized to disk and a new instance is created every time Unity starts up or when the VCS is activated.
The VersionControlObject is derived from ScriptableObject. This makes domain reloading handling simpler. You can add ScriptableObject.OnEnable() method to restore the state if needed.
You can use AssetModificationProcessor and AssetPostprocessor.OnPostprocessAllAssets(string[], string[], string[], string[], bool) to get notifications from Unity when it wants to edit, add or remove assets.
Additional Resources: VersionControlAttribute, VersionControlManager, EditorUserSettings, ScriptableObject, AssetModificationProcessor, AssetPostprocessor.
Properties
Property | Description |
|---|---|
| isConnected | Tests whether the VersionControlObject is connected to an underlying version control system. |
Methods
Method | Description |
|---|---|
| GetExtension | Gets optional extension object. |
| OnActivate | Called when your version control system is activated. |
| OnDeactivate | Called when your version control system is deactivated. |
| Refresh | Called when the cached state should be discarded and the new state should be retrieved from the underlying VCS. |
Inheritance
Operators
Operator | Description |
|---|---|
| operator == | Compares two object references to see if they refer to the same object. |
| bool | Determines whether the object exists. |
| operator != | Compares if two objects refer to a different object. |