public override void OnInspectorGUI() { // Automatic management serializedObject.Update(); EditorGUILayout.PropertyField(intVariable, new GUIContent("Var1")); EditorGUILayout.PropertyField(floatVariable, new GUIContent("Var2")); EditorGUILayout.PropertyField(gameObjectList, new GUIContent("List"), true); serializedObject.ApplyModifiedProperties(); // Manual management MyComponent myComponent = (MyComponent)target; int a = EditorGUILayout.IntField("Int Var", myComponent.IntVar); if (a != myComponent.IntVar) { myComponent.IntVar = a; EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } if (GUILayout.Button("Do something") == true) { myComponent.DoSomething(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } }
public override void OnInspectorGUI() { // Automatic management serializedObject.Update(); EditorGUILayout.PropertyField(intVariable, new GUIContent("Var1")); EditorGUILayout.PropertyField(floatVariable, new GUIContent("Var2")); EditorGUILayout.PropertyField(gameObjectList, new GUIContent("List"), true); serializedObject.ApplyModifiedProperties(); // Manual management MyComponent myComponent = (MyComponent)target; int a = EditorGUILayout.IntField("Int Var", myComponent.IntVar); if (a != myComponent.IntVar) { myComponent.IntVar = a; EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } if (GUILayout.Button("Do something") == true) { myComponent.DoSomething(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } GUILayout.Box(myComponent.image, GUILayout.Width(100), GUILayout.Height(100)); Event currentEvent = Event.current; Rect rect = GUILayoutUtility.GetLastRect(); if (rect.Contains(currentEvent.mousePosition)) { switch (currentEvent.type) { case EventType.DragUpdated: DragAndDrop.visualMode = IsDragValid() ? DragAndDropVisualMode.Link : DragAndDropVisualMode.Rejected; currentEvent.Use(); break; case EventType.DragPerform: DragAndDrop.AcceptDrag(); for (int i = 0; i < DragAndDrop.objectReferences.Length; i++) { myComponent.image = DragAndDrop.objectReferences[i] as Texture2D; } currentEvent.Use(); break; } } }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); serializedObject.Update(); EditorGUILayout.PropertyField(intvariable, new GUIContent("var1")); EditorGUILayout.PropertyField(floatvariable, new GUIContent("var2")); EditorGUILayout.PropertyField(gameObjects, new GUIContent("List"), true); // 자동 관리 serializedObject.ApplyModifiedProperties(); // 수동 관리 MyComponent myComponent = (MyComponent)target; //myComponent.intVariable = EditorGUILayout.IntField("int variable", myComponent.intVariable); //myComponent.floatVariable = EditorGUILayout.Slider("float variable", myComponent.floatVariable, 0f, 100f); //myComponent.intvar = EditorGUILayout.IntField("int var", myComponent.intvar); int a = EditorGUILayout.IntField("int var", myComponent.intvar); if (a != myComponent.intvar) { myComponent.intvar = a; // 씬 변경시 변동 사항 저장 알림 여부 EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } if (GUILayout.Button("DoSomething")) { myComponent.DoSomething(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } //if (GUILayout.Button("Show My Window")) //{ // MyEditorWindow.ShowWindow(); // EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); //} }
public override void OnInspectorGUI() //Update { serializedObject.Update(); EditorGUILayout.PropertyField(intVariable, new GUIContent("Var1")); EditorGUILayout.PropertyField(floatVariable, new GUIContent("Var2")); // EditorGUILayout.PropertyField(gameObject, new GUIContent("List"), true); serializedObject.ApplyModifiedProperties(); //표시하기 위한 코드 MyComponent MyComponent = (MyComponent)target; //★★★★★ MyComponent.intVariable = EditorGUILayout.IntField("Int Variable", MyComponent.intVariable); //int variable 표시 MyComponent.floatVariable = EditorGUILayout.Slider("Float Variable", MyComponent.floatVariable, 0f, 100f); //float variable 표시 //MyComponent.IntVar = EditorGUILayout.IntField("Int Var", MyComponent.IntVar); // int var property 표시 int a = EditorGUILayout.IntField("Int Var", MyComponent.IntVar); if (a != MyComponent.IntVar) { MyComponent.IntVar = a; EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } if (GUILayout.Button("Do Something") == true) // do something 버튼 { MyComponent.DoSomething(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } //if (GUILayout.Button("Show My Window") == true) // do something 버튼 //{ // MYEdiorWindow.ShowWindow(); //} }