Ejemplo n.º 1
0
        private static void HierarchyWindowListElementOnGUI(int instanceID, Rect selectionRect)
        {
            var obj = EditorUtility.InstanceIDToObject(instanceID);

            if (obj == null)
            {
                string sceneAssetPath = SceneManagerUtilities.GetSceneAssetPathFromHandle(instanceID);
                if (!string.IsNullOrEmpty(sceneAssetPath))
                {
                    MultiSceneHierarchyElement(sceneAssetPath, selectionRect);
                }
                return;
            }
            if (EditorApplication.isPlayingOrWillChangePlaymode || !VCSettings.HierarchyIcons || !VCCommands.Active)
            {
                return;
            }
            var objectIndirection = ObjectUtilities.GetObjectIndirection(obj);

            string assetPath             = obj.GetAssetPath();
            bool   changesStoredInPrefab = ObjectUtilities.ChangesStoredInPrefab(obj);
            bool   guiLockForPrefabs     = VCSettings.PrefabGUI;

            if (changesStoredInPrefab && guiLockForPrefabs)
            {
                VCUtility.RequestStatus(assetPath, VCSettings.HierarchyReflectionMode);
                DrawIcon(selectionRect, GetHierarchyIcon(obj), assetPath, objectIndirection);
            }
        }
Ejemplo n.º 2
0
        private static void HierarchyWindowListElementOnGUI(int instanceID, Rect selectionRect)
        {
            if (EditorApplication.isPlayingOrWillChangePlaymode || !VCSettings.HierarchyIcons || !VCCommands.Active)
            {
                return;
            }
            var obj = EditorUtility.InstanceIDToObject(instanceID);

            if (obj == null)
            {
                string sceneAssetPath = SceneManagerUtilities.GetSceneAssetPathFromHandle(instanceID);
                if (!string.IsNullOrEmpty(sceneAssetPath))
                {
                    VCUtility.RequestStatus(sceneAssetPath, VCSettings.HierarchyReflectionMode);
                    DrawIcon(selectionRect, IconUtils.rubyIcon, sceneAssetPath, null, -20f);
                }
            }
            else
            {
                var    objectIndirection = ObjectUtilities.GetObjectIndirection(obj);
                string sceneAssetPath    = ObjectUtilities.ObjectToAssetPath(obj, false);
                //DrawIcon(selectionRect, IconUtils.childIcon, sceneAssetPath, null, -20f);

                if (ObjectUtilities.ChangesStoredInPrefab(obj) && VCSettings.PrefabGUI)
                {
                    string prefabPath = obj.GetAssetPath();
                    VCUtility.RequestStatus(prefabPath, VCSettings.HierarchyReflectionMode);
                    DrawIcon(selectionRect, IconUtils.squareIcon, prefabPath, objectIndirection);
                }
            }
        }
Ejemplo n.º 3
0
        private static void HierarchyWindowListElementOnGUI(int instanceID, Rect selectionRect)
        {
            if (EditorApplication.isPlayingOrWillChangePlaymode || !VCSettings.HierarchyIcons || !VCCommands.Active)
            {
                return;
            }
            var obj = EditorUtility.InstanceIDToObject(instanceID);

            if (obj == null)
            {
                string sceneAssetPath = SceneManagerUtilities.GetSceneAssetPathFromHandle(instanceID);
                if (!string.IsNullOrEmpty(sceneAssetPath))
                {
                    VCUtility.RequestStatus(sceneAssetPath, VCSettings.HierarchyReflectionMode);
                    DrawIcon(selectionRect, IconUtils.rubyIcon, sceneAssetPath, null, -20f);
                }
            }
            else
            {
                var currentPrefabStage = PrefabStageUtility.GetCurrentPrefabStage();
                if (currentPrefabStage != null)
                {
                    var go = obj as GameObject;
                    if (go)
                    {
                        if (PrefabStageUtility.GetCurrentPrefabStage().prefabContentsRoot == go)
                        {
                            DrawIcon(selectionRect, IconUtils.squareIcon, PrefabStageUtility.GetCurrentPrefabStage().prefabAssetPath, PrefabStageUtility.GetCurrentPrefabStage().prefabContentsRoot, 0f);
                        }
                    }
                }
            }
        }