예제 #1
0
    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());
        }
    }
예제 #2
0
    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;
            }
        }
    }
예제 #3
0
    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());
        //}
    }
예제 #4
0
    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();
        //}
    }