public override void OnInspectorGUI() { base.OnInspectorGUI(); SO_Scene picker = target as SO_Scene; if (picker != null) { SceneAsset oldScene = AssetDatabase.LoadAssetAtPath <SceneAsset>(picker.Value); serializedObject.Update(); EditorGUI.BeginChangeCheck(); SceneAsset newScene = EditorGUILayout.ObjectField("scene", oldScene, typeof(SceneAsset), false) as SceneAsset; if (EditorGUI.EndChangeCheck()) { string newPath = AssetDatabase.GetAssetPath(newScene); SerializedProperty scenePathProperty = serializedObject.FindProperty("m_value"); scenePathProperty.stringValue = newPath; } } serializedObject.ApplyModifiedProperties(); }
public void Init(SO_Scene _scene) { gameObject.name = _scene.Value; gameObject.transform.GetChild(0).GetComponent <Text>().text = _scene.Value.Split('/').Last().Split('.').First(); }