본문 바로가기

취미로 하는 게임코딩_gameCodingAsHobby/유니티unity로 게임 만들기

유니티44_게임 제작 과정 13_게임 매니저

GameManager(게임 매니저) 설정

앞 글에서 UI를 완성한 후 시작버튼으로 게임을 시작할 수 있도록 해야 한다.

이 설정을 위해 GameManager 오브젝트를 만들고 GameManager스크립트를 작성해서 붙인다.

Create Empty로 빈 게임오브젝트를 만들고 이름을 GameManager로 바꾼다.

 

GameManager스크립트 만들기

 

새 스크립트를 만들고 GameManager로 이름을 바꾸면 위와 같이 자동으로 톱니모양으로 바뀐다.

GameManager(게임관리자)는 대부분 프로젝트에서 기본적으로 만드는 스크립트이므로 톱니모양의 기본 아이콘이 적용된다.

스크립트를 더블클릭하여 편집한다.

 

 

GameManager에서 관리할 오브젝트들의 변수를 public으로 선언해 준다.

스크립트를 저장한 후 GameManager의 Inspector 창에서 Add Component로 GameManager.cs 스크립트를 추가해 준다

 

 

스크립트를 컴퍼넌트로 추가하면 스크립트에서 만든 변수 3개가 나타난다.

각 변수에 맞는 객체와 CoverImage 오브젝트를 선택한다.

 

GameManager스크립트 작성

 

게임은 Start버튼을 클릭하면 다음과 같은 과정을 거쳐야 한다.

  1. CoverImage를 비활성화 한다.
  2. PrefabManager, ItemManager 스크립트의 Start()메서드에서 실행했던 EnemyRandom() , ItemRandom()메서드를 호출한다.

16번 줄에 OnClickStartButton()메서드를 만든다. 이 메서드는 시작버튼을 클릭했을 때 실행하는 메서드이다.

실행 내용은 18번 줄에서 CoverImage를 비활성화(보이지 않게)한다.

19~20번 줄에서 위에서 선언한 각 변수에서 호출할 메서드를 적어준다.

적과 아이템을 랜덤으로 생성하는 메서드이다.

스크립트를 저장한다.

 

현재 위 GameManager 스크립트에는 StartButton을 클릭했을 때 CoverImage가 비활성화 되도록 코드를 작성했다.

그런데  Canvas에는 CoverImage외에도 CoverText, Button 오브젝트도 함께 있는데 이 오브젝트들은 비활성화 되지 않을 것이다. 

그래서 CoverText, Button도 함께 비활성화 하려면 CoverImage의 자식 오브젝트로 넣어주면 된다.

오브젝트를 선택한 후 CoverImage에 끌어서 놓으면 위와 같이 CoverImage 안에 들어간다.

 

이제 위의 GameManager.cs 스크립트에서 EnemyRandom(), ItemRandom() 메서드를 호출하므로 PrefabManager.cs , ItemManager.cs 파일의 Start()메서드에 있는 EnemyRandom(), ItemRandom() 메서드는 아래와 같이 '주석'으로 처리해서 사용하지 않도록 한다.

 

OnClickStartButton메서드 적용하기

이제 버튼을 클릭하면 OnClickStartButton()메서드가 실행하도록 하자.

 

게임오브젝트Button을 선택하면 Inspector창에 On Click () 메서드 설정 부분이 있다.

현재 List is Empty (리스트가 비어있다) 라고 적혀있다.

여기에 + 버튼을 클릭해서 추가한다.

 

Scene탭에 있는 GameManager를 선택한다.

 

Function(함수, 메서드) 부분을 클릭한 후 GameManager에 있는 OnClickStartButton()를 선택한다.

 

이제 Button을 클릭하면 GameManager의 OnClickStartButton()메서드를 호출하여 실행한다.

테스트 해보자.

 

 

다음 글에서는 게임에서 빠질 수 없는 점수Score 넣는 방법을 알아본다.

끝.

Wraven...