void DrawPrefabInfo(AscensionEntity entity) { PrefabType prefabType = PrefabUtility.GetPrefabType(entity.gameObject); #if DEBUG EditorGUILayout.LabelField("Type", prefabType.ToString()); EditorGUILayout.LabelField("Scene Id", entity.SceneGuid.ToString()); #endif switch (prefabType) { case PrefabType.Prefab: case PrefabType.PrefabInstance: EditorGUILayout.LabelField("Id", entity.prefabId.ToString()); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab id not set, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } if (prefabType == PrefabType.Prefab) { if (PrefabDatabase.Contains(entity) == false) { EditorGUILayout.HelpBox("Prefab lookup not valid, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } } break; case PrefabType.None: if (entity.prefabId != 0) { // force 0 prefab id entity.prefabId = 0; // set dirty EditorUtility.SetDirty(this); } DEditorGUI.Disabled(() => { EditorGUILayout.IntField("Prefab Id", entity.prefabId); }); break; case PrefabType.DisconnectedPrefabInstance: entity.prefabId = EditorGUILayout.IntField("Prefab Id", entity.prefabId); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab Id not set", MessageType.Error); } break; } }
public void OnInspectorGUI2() { //GUILayout.Space(4); //GUILayout.BeginHorizontal(); //GUILayout.Space(2); //GUI.DrawTexture(GUILayoutUtility.GetRect(128, 128, 64, 64, GUILayout.ExpandHeight(false), GUILayout.ExpandWidth(false)), Resources.Load("AscensionLogo") as Texture2D); //GUILayout.EndHorizontal(); GUILayout.Space(2); EditorGUI.BeginDisabledGroup(Application.isPlaying); AscensionEntity entity = (AscensionEntity)target; PrefabType prefabType = PrefabUtility.GetPrefabType(entity.gameObject); RuntimeSettings settings = RuntimeSettings.Instance; #if DEBUG EditorGUILayout.LabelField("Prefab Type", prefabType.ToString()); #endif // Prefab Id switch (prefabType) { case PrefabType.Prefab: case PrefabType.PrefabInstance: EditorGUILayout.LabelField("Prefab Id", entity.PrefabId.ToString()); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab id not set, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } if (prefabType == PrefabType.Prefab) { if (PrefabDatabase.Contains(entity) == false) { EditorGUILayout.HelpBox("Prefab lookup not valid, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } } break; case PrefabType.None: if (entity.prefabId != 0) { // force 0 prefab id entity.prefabId = 0; // set dirty EditorUtility.SetDirty(this); } DEditorGUI.Disabled(() => { EditorGUILayout.IntField("Prefab Id", entity.prefabId); }); break; case PrefabType.DisconnectedPrefabInstance: entity.prefabId = EditorGUILayout.IntField("Prefab Id", entity.prefabId); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab Id not set", MessageType.Error); } break; } EditState(entity); EditProperties(entity); EditSceneProperties(entity, prefabType); EditorGUI.EndDisabledGroup(); if (prefabType == PrefabType.Prefab) { SaveEntity(entity); } else { if (Application.isPlaying) { RuntimeInfoGUI(entity); } else { SaveEntity(entity); } } }