usingUnityEngine;usingSystem.Collections;// 유저 인터페이스를 통해서 호출되는 메서드를 관리.publicpartialclassGamePlayManager {}
예제 3-58: GamePlayManager.Button.cs
---(전략)--- // 일시 정지 화면.publicGameObject pauseWindow;---(후략)---
예제 3-59: GamePlayManager.Button.cs
---(전략)---publicvoidClickPauseButton() { // 게임을 일시 정지 시킨다.Time.timeScale=0; // 일시 정지 화면을 화면에 나타나도록 한다.pauseWindow.SetActive(true); }---(후략)---
예제 3-60: GamePlayManager.Button.cs
---(전략)---publicUILabel speedButtonTextLb;---(중략)---publicvoidClickSpeedButton() { // 게임이 정지된 상태라면 더이상 처리하지 못하도록 예외처리.if( Time.timeScale==0.0f) return; // 현재 배속을 참조하여 배속 변경.if(Time.timeScale==1.0f) {Time.timeScale=2.0f;speedButtonTextLb.text="2x"; }else {Time.timeScale=1.0f;speedButtonTextLb.text="1x"; } }---(후략)---
PauseButton 게임 오브젝트의 UIButton에 아래 사항 연결
SpeedButton 게임 오브젝트의 UIButton에 아래 사항 연결
예제 3-61: GamePlayManager.Button.cs
---(전략)---publicvoidClickPauseReloadButton() {Time.timeScale=1; // 씬을 다시 로딩하여 새로 게임이 시작되도록 한다.Application.LoadLevel("PlayScene"); }publicvoidClickPausePlayButton() { // 게임 재개.if( speedButtonTextLb.text=="2x" ) {Time.timeScale=2.0f; }else {Time.timeScale=1.0f; } // 일시 정지 화면을 화면에서 사라지도록 한다.pauseWindow.SetActive(false); }publicvoidClickPauseHomeButton() { // TODO: 다른 씬으로 전환한다. }---(후략)---
---(전략)--- // 적 체력 표시 유저 인터페이스 생성에 사용한다.publicGameObject enemyHPBar;publicTransform enemyHPBarRoot;---(후략)---
예제 3-72: GamePlayManager.cs
---(전략)---voidInitGameObjectPools() {for(int i=0;i<spawnEnemyObjs.Count;i++) {CreateGameObject( spawnEnemyObjs[i],20, gameObjectPoolPosition ); } // 적 체력 표시 유저 인터페이스 생성 및 등록.CreateGameObject(enemyHPBar,20, enemyHPBarRoot,Vector3.one); }---(후략)---
예제 3-73: GamePlayManager.cs
---(전략)--- // 적 체력 표시 유저 인터페이스 할당에 사용한다.publicUIPanel enemyHPBarPanel;publicCamera enemyHPBarCam;---(후략)---
예제 3-74: GamePlayManager.cs
--(전략)--voidSpawnEnemy(EnemyWaveData enemyData) {--(중략)-- // 선택된 적 캐릭터를 초기화하여 작동시킨다.currentSpawnGameObject.tag=enemyData.tagName;Enemy currentEnemy =currentSpawnGameObject.GetComponent<Enemy>();currentEnemy.InitEnemy(enemyData.HP,enemyData.AD,enemyData.MS); shiftPosition++; // 게임오브젝트 풀에서 사용가능한 적 체력 표시 인터페이스가 있는지 체크.GameObject currentEnemyHPBar;if (!gameObjectPools [enemyHPBar.name] .NextGameObject(out currentEnemyHPBar)) { // 사용가능한 게임 오브젝트가 없다면 생성하여 추가한다. currentEnemyHPBar =Instantiate( enemyHPBar,gameObjectPoolPosition.transform.position,Quaternion.identity) asGameObject;currentEnemyHPBar.transform.parent= enemyHPBarRoot;currentEnemyHPBar.transform.localScale=Vector3.one;currentEnemyHPBar.name=enemyHPBar.name+gameObjectPools [enemyHPBar.name].lastIndex;gameObjectPools [enemyHPBar.name].AddGameObject(currentEnemyHPBar); } // 적 체력 표시 인터페이스 할당.UISlider tempEnemyHPBarSlider =currentEnemyHPBar.GetComponent<UISlider>();currentEnemy.InitHPBar( tempEnemyHPBarSlider, enemyHPBarPanel, enemyHPBarCam);if(enemyData.tagName=="boss") { // TODO: 적 보스 캐릭터가 등장했다는 표시를 띄운다. }--(후략)--