본문 바로가기
프로그래밍/게임 개발

프로그래밍 「 게임 개발 편」Unity에서 씬 로드 | Unity 개발자

by grapedoukan 2023. 7. 4.
728x90

우리는 최근에 우주 슈팅 게임을 위한 게임 오버 스크린을 만들었습니다. 그러나 플레이어가 다시 시도할 수 있도록 게임을 다시 시작하는 방법이 필요합니다. 이 작업은 Unity의 씬 관리를 사용하여 수행할 수 있습니다.

  1. 먼저 플레이어가 'R' 키를 눌러 게임을 다시 시작할 수 있는 텍스트 UI 요소를 만듭니다. 게임 화면의 하단 중앙 부분에 고정합니다.

2. 재시작 텍스트에 대한 핸들을 만들고 Unity 인스펙터 뷰에서 부착하여 볼 수 있도록 합니다.

3. UIManager 스크립트에서 게임 오버 시퀀스와 관련된 모든 것을 처리하는 새 메서드를 만듭니다. 이것은 텍스트에 대한 게임, 해당 텍스트에 대한 깜박임 효과 및 다시 시작 텍스트입니다.

void GameOverSequence()
    {
        _gameOverText.gameObject.SetActive(true);
        StartCoroutine(GameOverFlicker());
        _restartText.gameObject.SetActive(true);
    }

4. 다음 단계는 계층 구조 보기에서 게임 관리자 개체와 해당 스크립트를 만드는 것입니다. 스크립트가 개체에 연결되어 있는지 확인합니다. 게임 관리자는 게임이 실제로 끝났는지 확인합니다. 게임이 끝나면 사용자는 'r' 키를 누르고 새 장면을 로드할 수 있습니다. 이 경우 기본 장면 또는 게임 장면이 됩니다.

[SerializeField]
    private bool _isGameOver;

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.R) && _isGameOver == true)
        {
            SceneManager.LoadScene(0); 
        }
    }

    public void GameOver()
    {
        Debug.Log("GameManager::GameOver() Called");
        _isGameOver = true;
    }
 

그러나 이 작업을 수행하려면 장면 관리를 활용해야 합니다. 이렇게 하려면 이러한 설정을 작동하기 위해 게임 관리자 스크립트에서 SceneManagement 라이브러리를 사용해야 합니다.

  1. 게임에서 씬을 로드하기 위한 단계가 하나 더 있습니다. 인식하려면 빌드 설정에 추가해야 합니다. 이것은 Unity로 이동하여 File -> Build Settings...

2. 이대로 실행하면 게임이 다시 시작되지 않습니다. 게임 오버 시퀀스가 호출되지 않습니다. UIManager 스크립트에서 게임 관리자에 대한 참조 핸들을 만들고 Start 메서드에 할당합니다. 스크립트 통신을 사용하여 게임 관리자 스크립트에 액세스합니다.

void Start()
    {
        _scoreText.text = "Score: " + 0;
        _gameOverText.gameObject.SetActive(false);
        _gameManager = GameObject.Find("Game_Manager").GetComponent<GameManager>();

        if (_gameManager == null)
        {
            Debug.LogError("Game Manager is NULL");
        }
    }
.
.
.
.
.
 void GameOverSequence()
    {
        _gameManager.GameOver();
        _gameOverText.gameObject.SetActive(true);
        StartCoroutine(GameOverFlicker());
        _restartText.gameObject.SetActive(true);
    }

약간의 보너스를 받으려면 원하는 경우 클릭 가능한 버튼이 있는 메인 메뉴를 입력하고 버튼을 클릭하거나 게임 종료 상태에 도달하고 'R' 키를 눌러 게임을 시작할 수 있습니다.

728x90