コード例 #1
0
        //----------------------------------------------------------------------

        public static void AddSubasset(this Object asset, Object subasset)
        {
            var assetPath = asset.GetAssetPath();

            Debug.Assert(assetPath != null);
            AssetDatabase.AddObjectToAsset(subasset, assetPath);
            AssetDatabase.ImportAsset(assetPath);
        }
コード例 #2
0
        static public bool IsAssetSaved(this UnityEngine.Object item)
        {
            if (item.GetAssetPath().IsVisible())
            {
                return(true);
            }

            return(false);
        }
コード例 #3
0
 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;
     }
 }
コード例 #4
0
        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));
                        }
                    }
                }
            }
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
ファイル: VCUtility.cs プロジェクト: yusjoel/uversioncontrol
        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);
        }
コード例 #7
0
ファイル: VCUtility.cs プロジェクト: kjems/uversioncontrol
 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;
 }
コード例 #8
0
ファイル: VCUtility.cs プロジェクト: kjems/uversioncontrol
 public static bool ManagedByRepository(Object obj)
 {
     return ManagedByRepository(obj.GetAssetPath());
 }
コード例 #9
0
ファイル: VCUtility.cs プロジェクト: kjems/uversioncontrol
 public static bool HaveAssetControl(Object obj)
 {
     return HaveAssetControl(obj.GetAssetPath());
 }
コード例 #10
0
 static public string GetAssetDirectory(this UnityEngine.Object item)
 {
     return(Filename.GetDirectory(item.GetAssetPath()));
 }
コード例 #11
0
 public static bool ChangesStoredInScene(Object obj)
 {
     obj = GetObjectIndirection(obj);
     return obj.GetAssetPath() == SceneManagerUtilities.GetCurrentScenePath();
 }
コード例 #12
0
 static public IEnumerable <UnityEngine.Object> GetAssetCohabitants(this UnityEngine.Object item)
 {
     return(AssetDatabase.LoadAllAssetsAtPath(item.GetAssetPath()));
 }
コード例 #13
0
        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));
                        }
                    }
                }
            }
        }
コード例 #14
0
 static public AssetImporter GetAssetImporter(this UnityEngine.Object item)
 {
     return(AssetImporter.GetAtPath(item.GetAssetPath()));
 }
コード例 #15
0
ファイル: VCUtility.cs プロジェクト: yusjoel/uversioncontrol
 public static bool ManagedByRepository(Object obj)
 {
     return(ManagedByRepository(obj.GetAssetPath()));
 }
コード例 #16
0
ファイル: VCUtility.cs プロジェクト: yusjoel/uversioncontrol
 public static bool HaveAssetControl(Object obj)
 {
     return(HaveAssetControl(obj.GetAssetPath()));
 }
コード例 #17
0
 static public string GetAssetGUID(this UnityEngine.Object item)
 {
     return(AssetDatabase.AssetPathToGUID(item.GetAssetPath()));
 }
コード例 #18
0
 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;
 }