[런게임] 유니티 3D로 러너 게임 만들기 - 게임 이벤트들

|

게임 관련 이벤트들

현재 게임은 플레이 버튼을 누르면 즉시 실행되며, 플레이어가 길 아래로 추락해도 게임이 끝나지도 않습니다. 우리가 원하는 것은 게임 타이틀 화면으로 시작하고 점프 버튼 중 하나를 누르면 새로운 게임을 시작 한다는 말과 함께 플레이어가 죽으면 게임이 끝나는 것입니다

위와 같은 방법을 구현하기 위해서는 세가지 이벤트들을 구현해야 됩니다. 첫번째는 게임 실행시 Start 메서드에서 구현합니다. 나머지 두가지는 게임 시작과 게임오버인데 이것은 사용자 정의 방식을 필요로합니다. 우리는 이것들을 관리하기 위해서 간단한 이벤트 매니저를 생성할것입니다.

Managers 폴더를 만듭니다.그리고 GameEventManager라는 C# 스크립트를 생성합니다. 우리는 GameEventManager 를 스테틱 클래스로 만들것이고 이안에 GameEvent 딜리게이트를 집어넣을것입니다. manager 클래스는 MonoBehaviour 를 상속받지 않으며 오브젝트에도 붙지 않습니다.

 C# 딜리게이트와 이벤트란?
Game event manager.
public static class GameEventManager {

	public delegate void GameEvent();
}
우리는 새로운 gameEvent 타입을 사용합니다. manager 에 두가지 타입을 더합시다. GameStart 와 GameEnd. 이제 다른 스크립트에서 이벤트를 구독하여 이벤트를 호출 할수있습니다.
public static class GameEventManager {

	public delegate void GameEvent();

	public static event GameEvent GameStart, GameOver;
}
마지막으로, 우리는 이벤트를 변환 할 수있는 방법을 추가해야합니다. 우리는 두 가지 메서드를 추가합니다. 이벤트를 호출하는 경우 구독을 하지 않으면 null이됩니다. 그럴 경우 오류가 나므로 주의하시기 바랍니다.
public static class GameEventManager {

	public delegate void GameEvent();

	public static event GameEvent GameStart, GameOver;

	public static void TriggerGameStart(){
		if(GameStart != null){
			GameStart();
		}
	}

	public static void TriggerGameOver(){
		if(GameOver != null){
			GameOver();
		}
	}
}


Trackback 0 And Comment 0