본문 바로가기

Project/전투 시스템

[전투 시스템] Unity: 게임 매니저 만들기

728x90

게임 종료와 시작을 담당할 게임 매니저를 만들어줍니다. 게임 매니저는 잦은 호출을 필요로 하기 때문에 싱글톤 패턴을 사용합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class GameManager : MonoBehaviour
{
    #region Singleton
    public static GameManager instance;
 
    void Awake()
    {
        if(instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
    }
    #endregion
 
    public Vector2 limitPoint1;
    public Vector2 limitPoint2;
 
    public GameObject gameWInUI;
    public GameObject gameLoseUI;
 
    bool isOver = false;

 

  • limitPoint1 - 적 스크립트에서 사용할 제한 지점 1 값을 저장할 변수입니다.
  • limitPoint2 - 적 스크립트에서 사용할 제한 지점 2 값을 저장할 변수입니다.
  • gameWinUI - 게임 승리 UI를 저장할 변수입니다.
  • gameLoseUI - 게임 패배 UI를 저장할 변수입니다.
  • isOver - 게임이 종료에 대한 정보를 저장할 변수입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
   void Update()
    {
        if (isOver)
        {
            if (Input.GetButtonDown("Jump"))
            {
                SceneManager.LoadScene(0);
            }
        }    
    }
 
    public void GameOver(bool isWin)
    {
        if (isWin)
        {
            gameWInUI.SetActive(true);
            isOver = true;
        }
        else
        {
            gameLoseUI.SetActive(true);
            isOver = true;
        }
    }
}

 

Update 함수를 통해서 게임 종료시 게임을 재시작할 수 있는 논리를 작성해줍니다.

 

GameOver 함수는 인자로 받은 isWin을 통해서 isWin에 맞는 UI를 표현해줍니다.

 

728x90