이번에는 Game Manager를 만들어서 게임전체를 컨트롤 하고 점수를 올리는 프로그램을 짜보겠습니다
먼저 빈게임오브젝트를 만들고 GameManager라고 합니다
GameManager스크립트를 만듭니다
Player스크립트를 선택하고 수정합니다
canShoot = false로 수정합니다
can Shoot 체크 해제 합니다
SpawnManager스크립트를 수정합니다
SpawnManager스크립트를 SoundManager스크립트 처럼 인스턴스 스크립트를 추가 합니다
SpawnManager오브젝트를 선택하고 is Spawn 을 체크 해제한다
GameManager스크립트를 GameManager오브젝트에 붙힙니다
그리고 Hierarchy창에서 마우스 오른쪽 버튼을 눌러 UI -> Text 를 생성합니다
생성된 Canvas -> Canvas Scaler를 그림과 같이 Scale With Screen Size를 선택합니다
Scale With Screen Size를 선택 하고 Reference Resolution 을 200 320 으로 바끕니다
Text를 선택하여 그림과 같이 속성을 바꿉니다
Text가 화면에 잘보일수있게 그림과같이 설정되었습니다.Text와 위치는 사용자가 보기 좋은 방향으로 위치와 색깔을 수정하셔도 됩니다
그림과 같이 GameManager 스크립트를 작성합니다
3초후 게임이 실행되는 Invoke 함수를 넣고 AddScore 함수를 넣어 적을 격파 하였을때 점수를 올리는 스크립트를 짭니다
GameManager를 선택하고 Text를 붙힙니다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour {
GameObject player;
int score = 0;
public Text scoreText;
public static GameManager instance;
private void Awake()
{
if (GameManager.instance == null)
{
GameManager.instance = this;
}
}
void Start ()
{
player = GameObject.FindGameObjectWithTag("Player");
Invoke("StartGame", 3f);//3초후 StarGame실행
}
void StartGame()
{
player.GetComponent<Player>().canShoot = true;
SpawnManager.instance.isSpawn = true;
}
public void AddScore(int enemyScore)//적을 격파할때마다 점수가 올라가는 함수
{
score += enemyScore;
scoreText.text = "Score:" + score;
}
void Update () {
}
}
Enemy 스크립트를 선택하고 수정합니다
그림과 같이 Enemy스크립트를 수정합니다
게임을 실행하여 3초후 총알이 발사되고 적이나오는것을 확인하고 적을 격파하였을때 점수가 올라가는 것을 확인합니다
'게임 만들기 강좌 > 유니티2D 슈팅게임 만들기' 카테고리의 다른 글
유니티 슈팅 게임 만들기 15_총알 memory pool 만들기 (0) | 2019.01.05 |
---|---|
유니티 슈팅 게임 만들기 14_게임시작 및 게임오버 텍스쳐 나타내기 (0) | 2019.01.04 |
유니티 슈팅 게임 만들기 12_Player 이동제한 만들기 (0) | 2019.01.02 |
유니티 슈팅 게임 만들기 11_Remove Zone 만들기 (0) | 2019.01.01 |
유니티 슈팅 게임 만들기 10_적 SpawnManager 만들기 (1) | 2018.12.31 |