Пример #1
0
    //Handler of edit button. Set the index of the selected gizmo and save the initial position
    private void EditButtonHandler(int index)
    {
        if (index == GizmoCustomEditor.selectedIndex)
        {
            GizmoCustomEditor.selectedIndex = -1;
        }
        else
        {
            GizmoCustomEditor.selectedIndex = index;
        }

        //Save the position when entering edit mode
        GizmoCustomEditor.StartingPosition = GizmoCustomEditor.GetPositiontAt(index);
        SceneView.RepaintAll();
    }
Пример #2
0
    //Window GUI update
    private void OnGUI()
    {
        if (GizmoCustomEditor._gizmos != null)
        {
            float fieldWidth = position.width / 5.0f;

            scrollPosition = GUILayout.BeginScrollView(scrollPosition);

            //Columns names
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("name", GUILayout.MinWidth(100), GUILayout.MaxWidth(fieldWidth));
            EditorGUILayout.LabelField(" ", GUILayout.MinWidth(100), GUILayout.MaxWidth(fieldWidth));
            EditorGUILayout.LabelField("position", GUILayout.MinWidth(100), GUILayout.MaxWidth(fieldWidth));
            EditorGUILayout.EndHorizontal();

            for (int i = 0; i < GizmoCustomEditor._gizmos.arraySize; i++)
            {
                //Color the selected line in red
                if (i == GizmoCustomEditor.selectedIndex)
                {
                    GUI.color = Color.red;
                }
                else
                {
                    GUI.color = Color.white;
                }


                //Input fields
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                GizmoCustomEditor.SetNameAt(i, EditorGUILayout.TextField(GizmoCustomEditor.GetNameAt(i), GUILayout.MinWidth(100), GUILayout.MaxWidth(fieldWidth)));
                EditorGUILayout.Space();
                GizmoCustomEditor.SetPositionAt(i, EditorGUILayout.Vector3Field("", GizmoCustomEditor.GetPositiontAt(i), GUILayout.MinWidth(300), GUILayout.MaxWidth(fieldWidth * 3)));
                EditorGUILayout.Space();
                if (GUILayout.Button("Edit", GUILayout.MinWidth(100), GUILayout.MaxWidth(fieldWidth)))
                {
                    EditButtonHandler(i);
                }
                EditorGUILayout.Space();
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();
            }
            GUILayout.EndScrollView();
        }
    }