Adaid's Workroom

[IC] Isometric 타일맵 에디터 제작기 (5) - 편집모드 전환 버튼 본문

프로젝트/Infinite Cocktail

[IC] Isometric 타일맵 에디터 제작기 (5) - 편집모드 전환 버튼

어데이드 2018. 1. 5. 15:40

18.01.05

편집모드를 전환할 수 있게 하였다.

편집모드가 아닐때는 씬뷰를 평소처럼 이용가능하도록

편집모드 전환 버튼

단순히 편집모드 상태를 전환할 수 있게 하는 버튼을 만들었다.

일단 편집모드X / 땅 편집 / 오브젝트 편집의 타입을 enum 형으로 만들었다.

bool형으로 할까 하다가 나중에 다른 모드도 추가할 경우도 있을듯 하여 enum으로 결정.


//에디터 액션 종류
private enum ActionType
    {
        NONE,
        GROUND_EDIT,
        OBJECT_EDIT
    }

OnInspectorGUI에 버튼을 추가하는 스크립트를 작성하였다.

public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        if(actionType == ActionType.NONE)
        {
            GUILayout.BeginHorizontal();
            GUI.color = Color.green;

            //Ground 편집 버튼
            if (GUILayout.Button("Edit Ground"))
            {
                actionType = ActionType.GROUND_EDIT;
            }

            //Object 편집 버튼
            if (GUILayout.Button("Edit Object"))
            {
                actionType = ActionType.OBJECT_EDIT;
            }
            GUILayout.EndHorizontal();
        }
        else
        {
            //편집 중지 버튼
            GUI.color = Color.red;
            if (GUILayout.Button("Stop Editing"))
            {
                actionType = ActionType.NONE;
            }
        }

        ...
    }


편집모드가 아닐 때는 다음과 같이 보인다.



편집모드일 때는



OnSceneGUI에는 actionType에 따라 함수를 실행한다.


void OnSceneGUI()
    {
        ...
        //마우스 입력 관련
        if (actionType != ActionType.NONE)
        {
           //타일 편집 관련 함수들
            ...
        }
    }

일단은 당장 쓸일이 없어서 저렇게 해놓음

Comments