//---------------------------------------------------------------------- public static void AddSubasset(this Object asset, Object subasset) { var assetPath = asset.GetAssetPath(); Debug.Assert(assetPath != null); AssetDatabase.AddObjectToAsset(subasset, assetPath); AssetDatabase.ImportAsset(assetPath); }
static public bool IsAssetSaved(this UnityEngine.Object item) { if (item.GetAssetPath().IsVisible()) { return(true); } return(false); }
public static void SetEditable(Object obj, bool editable) { //D.Log("Setting '" + obj + "' to " + (editable ? "editable" : "readonly")); if (obj != null && !AvoidGUILock(obj) && !IsBuiltinAsset(obj.GetAssetPath()) && !(obj is GameObject && PrefabHelper.IsPrefabParent(obj))) // Do not modify object flags for Project-Prefab GameObjects { if (editable && !IsEditable(obj)) obj.hideFlags &= ~HideFlags.NotEditable; if (!editable && IsEditable(obj)) obj.hideFlags |= HideFlags.NotEditable; } }
public static void VersionControlStatusGUI(GUIStyle style, VersionControlStatus assetStatus, Object obj, bool showAddCommit, bool showLockAndAllowLocalEdit, bool showRevert, bool confirmRevert = false) { using (new PushState <bool>(GUI.enabled, VCCommands.Instance.Ready, v => GUI.enabled = v)) { if (assetStatus.lockStatus == VCLockStatus.LockedHere || assetStatus.ModifiedOrLocalEditAllowed() || !VCUtility.ManagedByRepository(assetStatus)) { if (!assetStatus.ModifiedOrLocalEditAllowed() && obj.GetAssetPath() != "" && showAddCommit) { if (GUILayout.Button((VCUtility.ManagedByRepository(assetStatus) ? Terminology.commit : Terminology.add), GetPrefabToolbarStyle(style, true))) { VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector"); } } } if (!VCUtility.HaveVCLock(assetStatus) && VCUtility.ManagedByRepository(assetStatus) && showLockAndAllowLocalEdit) { if (assetStatus.fileStatus == VCFileStatus.Added) { if (GUILayout.Button(Terminology.commit, GetPrefabToolbarStyle(style, true))) { VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector"); } } else if (assetStatus.lockStatus != VCLockStatus.LockedOther) { if (GUILayout.Button(Terminology.getlock, GetPrefabToolbarStyle(style, true))) { VCCommands.Instance.GetLockTask(obj.ToAssetPaths()); } } if (!assetStatus.LocalEditAllowed()) { if (GUILayout.Button(Terminology.allowLocalEdit, GetPrefabToolbarStyle(style, true))) { VCCommands.Instance.AllowLocalEdit(obj.ToAssetPaths()); } } } if (showRevert) { if (GUILayout.Button(Terminology.revert, GetPrefabToolbarStyle(style, VCUtility.ShouldVCRevert(obj)))) { if ((!confirmRevert || Event.current.shift) || VCUtility.VCDialog(Terminology.revert, obj)) { var seletedGo = Selection.activeGameObject; var revertedObj = VCUtility.Revert(obj); OnNextUpdate.Do(() => Selection.activeObject = ((obj is GameObject) ? revertedObj : seletedGo)); } } } } }
public static void Destroy(Object o) { #if UNITY_EDITOR if (o.IsAsset()) { AssetDatabase.DeleteAsset(o.GetAssetPath()); return; } #endif if (Application.isPlaying) { Object.Destroy(o); } else { Object.DestroyImmediate(o); } }
public static bool GetLock(Object obj, OperationMode operationMode = OperationMode.Normal) { bool shouldGetLock = true; if (onHierarchyAllowGetLock != null) { shouldGetLock = onHierarchyAllowGetLock(obj); } if (shouldGetLock) { bool success = GetLock(obj.GetAssetPath(), operationMode); if (success && onHierarchyGetLock != null) { onHierarchyGetLock(obj); } return(success); } return(false); }
public static bool GetLock(Object obj, OperationMode operationMode = OperationMode.Normal) { bool shouldGetLock = true; if (onHierarchyAllowGetLock != null) shouldGetLock = onHierarchyAllowGetLock(obj); if (shouldGetLock) { bool success = GetLock(obj.GetAssetPath(), operationMode); if (success && onHierarchyGetLock != null) onHierarchyGetLock(obj); return success; } return false; }
public static bool ManagedByRepository(Object obj) { return ManagedByRepository(obj.GetAssetPath()); }
public static bool HaveAssetControl(Object obj) { return HaveAssetControl(obj.GetAssetPath()); }
static public string GetAssetDirectory(this UnityEngine.Object item) { return(Filename.GetDirectory(item.GetAssetPath())); }
public static bool ChangesStoredInScene(Object obj) { obj = GetObjectIndirection(obj); return obj.GetAssetPath() == SceneManagerUtilities.GetCurrentScenePath(); }
static public IEnumerable <UnityEngine.Object> GetAssetCohabitants(this UnityEngine.Object item) { return(AssetDatabase.LoadAllAssetsAtPath(item.GetAssetPath())); }
public static void VersionControlStatusGUI(GUIStyle style, VersionControlStatus assetStatus, Object obj, bool showAddCommit, bool showLockAndAllowLocalEdit, bool showRevert, bool confirmRevert = false) { using (new PushState<bool>(GUI.enabled, VCCommands.Instance.Ready, v => GUI.enabled = v)) { if (assetStatus.lockStatus == VCLockStatus.LockedHere || assetStatus.ModifiedOrLocalEditAllowed() || !VCUtility.ManagedByRepository(assetStatus)) { if (!assetStatus.ModifiedOrLocalEditAllowed() && obj.GetAssetPath() != "" && showAddCommit) { if (GUILayout.Button((VCUtility.ManagedByRepository(assetStatus) ? Terminology.commit : Terminology.add), GetPrefabToolbarStyle(style, true))) { VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector"); } } } if (!VCUtility.HaveVCLock(assetStatus) && VCUtility.ManagedByRepository(assetStatus) && showLockAndAllowLocalEdit) { if (assetStatus.fileStatus == VCFileStatus.Added) { if (GUILayout.Button(Terminology.commit, GetPrefabToolbarStyle(style, true))) { VCUtility.ApplyAndCommit(obj, Terminology.commit + " from Inspector"); } } else if (assetStatus.lockStatus != VCLockStatus.LockedOther) { if (GUILayout.Button(Terminology.getlock, GetPrefabToolbarStyle(style, true))) { VCCommands.Instance.GetLockTask(obj.ToAssetPaths()); } } if (!assetStatus.LocalEditAllowed()) { if (GUILayout.Button(Terminology.allowLocalEdit, GetPrefabToolbarStyle(style, true))) { VCCommands.Instance.AllowLocalEdit(obj.ToAssetPaths()); } } } if (showRevert) { if (GUILayout.Button(Terminology.revert, GetPrefabToolbarStyle(style, VCUtility.ShouldVCRevert(obj)))) { if ((!confirmRevert || Event.current.shift) || VCUtility.VCDialog(Terminology.revert, obj)) { var seletedGo = Selection.activeGameObject; var revertedObj = VCUtility.Revert(obj); OnNextUpdate.Do(() => Selection.activeObject = ((obj is GameObject) ? revertedObj : seletedGo)); } } } } }
static public AssetImporter GetAssetImporter(this UnityEngine.Object item) { return(AssetImporter.GetAtPath(item.GetAssetPath())); }
public static bool ManagedByRepository(Object obj) { return(ManagedByRepository(obj.GetAssetPath())); }
public static bool HaveAssetControl(Object obj) { return(HaveAssetControl(obj.GetAssetPath())); }
static public string GetAssetGUID(this UnityEngine.Object item) { return(AssetDatabase.AssetPathToGUID(item.GetAssetPath())); }
private static bool IsChildNode(Object obj) { GameObject go = obj as GameObject; if (go != null) { var persistentAssetPath = obj.GetAssetPath(); var persistentParentAssetPath = go.transform.parent != null ? go.transform.parent.gameObject.GetAssetPath() : ""; return persistentAssetPath == persistentParentAssetPath; } return false; }