WinCNT

유니티 에디터 모드에서 다이얼로그(Dialogue)창 띄우기 본문

Unity/Unity 관련

유니티 에디터 모드에서 다이얼로그(Dialogue)창 띄우기

WinCNT_SSS 2023. 4. 26. 11:06

서론

현재 제작 중인 스크립트의 버튼이 눌렸을 때 플레이 모드에서는 관련 처리를 실행하고,

에디터 모드면 다이얼로그 창을 표시하고 실행하지 않는 처리를 구현하기 위해 좀 찾아봤다


소스 코드

다이얼로그 창은 아래의 코드로 표시할 수 있었다

bool res1 = EditorUtility.DisplayDialog("Title", "Message", "OK");
bool res2 = EditorUtility.DisplayDialog("Title", "Message", "OK", "Cancel");
int opt   = EditorUtility.DisplayDialogComplex("Title", "Message", "OK", "Cancel", "Alt Button");


결과

스크립트의 버튼이 눌렸을 때 플레이 모드인지 아닌지를 판별하는 if문을 추가해서 구현했다

public override void OnInspectorGUI()
{
    base.OnInspectorGUI();
    CostomScript comp = (CostomScript)target;
    if (GUILayout.Button("Button"))
    {
        if (!Application.isPlaying)
        {
            bool res1 = EditorUtility.DisplayDialog("Title", "Message", "OK");
            bool res2 = EditorUtility.DisplayDialog("Title", "Message", "OK", "Cancel");
            int opt   = EditorUtility.DisplayDialogComplex("Title", "Message", "OK", "Cancel", "Alt Button");
        }
        else
        {
            comp.CustomFunc();
        }
    }
}

마무리

처음 관련 자료를 찾을 때에는 실제 게임에서 다이얼로그 창(과 비슷한 게임 내의 창)을 띄우는 내용만 나왔었다

검색 키워드에 에디터 모드를 추가하고 나서야 원하는 자료들이 나왔다

역시 검색 키워드가 중요하다…


참고 사이트

유니티 - 에디터 다이얼로그 창 띄우기

 

유니티 - 에디터 다이얼로그 창 띄우기

1 2 bool res1 = EditorUtility.DisplayDialog("Title", "Message", "OK"); bool res2 = EditorUtility.DisplayDialog("Title", "Message", "OK", "Cancel");

rito15.github.io

Unity - Scripting API:

 

Unity - Scripting API:

Searching Script Reference, please wait.

docs.unity3d.com