본문 바로가기

게임 개발/유니티

[유니티] 게임 패널에 GUI 띄우기

728x90

유니티로 게임 개발을 하다보면 특정한 상황을 반복적으로 실행해서 테스트를 해야하는 경우가 많습니다.

예를 들면 캐릭터가 죽었을 때 재시작 버튼을 띄운다던가, 다시 시작지점으로 돌아가게 한다던가 하는 후속 처리가 있습니다.

이 기능들이 제대로 작동하는지 테스트하려면 캐릭터를 반복적으로 죽여야 합니다.

 

하지만 직접 캐릭터를 죽음의 상황에 처하도록 컨트롤하는 것은 시간낭비가 많습니다.

그래서 유니티에서는 게임 패널에 UI버튼을 추가하여 스크립트를 실행할 수 있도록 도와주고 있습니다.

 

예를 들어 캐릭터가 적에게 맞아 체력이 0 이하로 내려가면 die() 함수가 실행됩니다.

그럴 때 간단히 UI 버튼을 눌러 die()함수가 실행되도록 하는 것입니다.

 

 

가장 간단하게 구현하는 방법은 다음과 같습니다.

private void OnGUI()
{
    if (GUILayout.Button("print1"))	// GUI 버튼에 표시될 텍스트
        GUIPrint();			// 호출할 함수
        
    if (GUILayout.Button("print2"))
        GUIPrint();
}

void GUIPrint()
{
    print("gui 버튼을 눌렀습니다.");
}

 

 

화면이 크면 잘 안보이지만 좌측 상단에 GUI 버튼 2개가 나란히 생성되었습니다.

확대해보면 다음과 같습니다.

 

 

버튼을 눌러보면 정의되어 있는 함수가 잘 실행됩니다.

 

 

 

# 사용자 정의 버튼 만들기

private void OnGUI()
{
    if (GUI.Button(new Rect(10, 10, 100, 30), "print small"))
        GUIPrintSmall();

    if (GUI.Button(new Rect(20, 80, 200, 50), "print big"))
        GUIPrintBig();
}

    

void GUIPrintSmall()
{
    print("print small 버튼을 눌렀습니다.");
}
void GUIPrintBig()
{
    print("print big 버튼을 눌렀습니다.");
}

 

 

Rect( 시작 좌표 x, 시작 좌표 y, 넓이, 높이 ) 로 설정하여

GUI 버튼의 위치와 크기를 설정할 수 있습니다.

 

728x90