private static void RenderSceneGameObjectField(ref GameObjectRef gameObjectRef, ref bool dataChanged) { if (gameObjectRef.IsValid()) { Scene scene = gameObjectRef.GetSceneRef().GetScene(); if (scene.IsValid() && scene.isLoaded) { EditorGUI.BeginChangeCheck(); GameObject gameObj = (GameObject)EditorGUILayout.ObjectField(kLabel, gameObjectRef.GetGameObject(), typeof(GameObject), true); if (EditorGUI.EndChangeCheck()) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Scene, gameObj); dataChanged = true; } } else if (RenderSceneNotLoadedField(gameObjectRef)) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Scene); dataChanged = true; } } else { EditorGUI.BeginChangeCheck(); GameObject gameObj = (GameObject)EditorGUILayout.ObjectField(kLabel, gameObjectRef.GetGameObject(), typeof(GameObject), true); if (EditorGUI.EndChangeCheck()) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Scene, gameObj); dataChanged = true; } } }
private static void RenderLoadedGameObjectField(ref GameObjectRef gameObjectRef, ref bool dataChanged) { if (gameObjectRef.IsValid()) { Scene scene = gameObjectRef.GetSceneRef().GetScene(); if (scene.IsValid() && scene.isLoaded) { //If loaded and not tried finding editor loader, find it now GameObjectLoader gameObjectLoader = gameObjectRef.GetEditorGameObjectLoader(scene); //If have a valid loader... if (gameObjectLoader != null) { if (gameObjectLoader.IsLoaded()) { EditorGUI.BeginChangeCheck(); GameObject obj = (GameObject)EditorGUILayout.ObjectField(kLabel, gameObjectRef.GetGameObject(), typeof(GameObject), true); if (EditorGUI.EndChangeCheck()) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Loaded, obj); dataChanged = true; } } else if (RenderLoadedNotLoadedField(gameObjectLoader)) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Loaded); dataChanged = true; } } } else if (RenderSceneNotLoadedField(gameObjectRef)) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Loaded); dataChanged = true; } } else { EditorGUI.BeginChangeCheck(); GameObject obj = (GameObject)EditorGUILayout.ObjectField(kLabel, gameObjectRef.GetGameObject(), typeof(GameObject), true); if (EditorGUI.EndChangeCheck()) { gameObjectRef = new GameObjectRef(GameObjectRef.eSourceType.Loaded, obj); dataChanged = true; } } }
public bool IsValid() { return(_gameObject.IsValid()); }