반응형

이번 시간에는 게임이 끝나면 게임을 재시작하는 스크립트를 짜고 3D 게임에서 오브젝트를 밝게 비추는 라이트를 고정해 놓는 작업을 하겠습니다

 

먼저 Hierarchy 뷰에서 GameManager 오브젝트를 선택하여 GameManager 스크립트를 열고 스크립트를 수정합니다 

 

 

반응형

 

GameManager 스크립트 수정

 

스크립트를 열고 네임스페이스 부분에서

using UnityEngine.SceneManagement;

를 추가합니다 

그리고 ReloadGame() 함수를 추가하여 GameOver() 함수에서 실행하는 명령을 추가합니다 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
    public static GameManager instance;

    //
    public GameObject platformSpawner;

    public bool gameStarted;

    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
    }

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (!gameStarted)
        {
            //마우스 클릭하면 차가 움직인다 
            if (Input.GetMouseButtonDown(0))
            {
                GameStart();
            }
        }
    }

    public void GameStart()
    {
        gameStarted = true;
        //platformSpawner 스크립트를 실행
        platformSpawner.SetActive(true);
    }


    public void GameOver()
    {
        //platformSpawner 스크립트를 없앤다
        platformSpawner.SetActive(false);

        //1초후 게임재시작 함수에 전달 
        Invoke("ReloadGame",1);
    }

    //게임재시작
    void ReloadGame()
    {
        SceneManager.LoadScene("Game");
    }
}

 

 

게임을 재시작 할려면 신을 추가하여야 합니다 

File -> Build Settings 를 열고 Game 신을 추가합니다 

 

게임을 재시작하면 라이트가 꺼지는 현상을 보게 될것입니다 

그래서 라이트를 고정할려면 라이트맵을 만들어야 합니다 

Window -> Rendering -> Lighting에 들어갑니다 

 

 

 

Lighting  탭에서 맨 마지막에  Generate Lighting 을 클릭합니다 

 

라이트 맵이생성되었습니다 

 

게임을 실행하여 1초후 게임이 재실행되고 라이트가 고정되었는지 확인합니다 

 

 

반응형

+ Recent posts