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
'게임 개발 > 유니티' 카테고리의 다른 글
[유니티] Input.GetKey() 한글로 입력해도 동작하게 하고 싶다면 (0) | 2023.01.16 |
---|---|
[유니티/셰이더] 순차적 체커보드 패턴 Procedural checkerboard pattern (1) | 2022.12.24 |
[유니티/셰이더] 커스텀 셰이더 기초 (1) | 2022.12.23 |
[유니티] Photon Fusion 103 간단 요약 (0) | 2022.12.22 |
[유니티] Photon Fusion 102 간단 요약 (1) | 2022.12.20 |