상세 컨텐츠

본문 제목

9. 맵 장애물 만들기(재시작)

유니티

by MJ_119 2023. 6. 7. 16:47

본문

장애물을 만들기 위해 3D Object에 큐브를 한개 새로 만들어주고 Scale과 Position을 잡아준다

 

이렇게 하고 게임을 실행하면 벽과 충돌이 일어나지만 아무런 효과도 없다.

 

C# 스크립트를 통해 코드를 작성해서 효과를 넣어주자.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; // 씬을 불러오기 위해 코드 추가
public class ObstacleBehaviour : MonoBehaviour
{
    [Tooltip("게임 재시작 대기 시간")]
    public float waitTime = 2.0f;

    private void OnCollisionEnter(Collision collision)
    {
        // 가장 먼저 플레이어와 충돌했는지 체크
        if ( collision.gameObject.GetComponent<PlayerBehaviour>())
        {
            // 플레이어 제거
            Destroy(collision.gameObject);
            // 대기 시간이 지나면 ResetGame 함수 호출
            Invoke("ResetGame", waitTime);
        }
    }

    /// <summary>
    /// 현재 레벨을 다시 시작한다
    /// </summary>

    private void ResetGame()
    {
        // 현재 레벨을 재시작
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}

 

그다음 장애물(Obstacle)에 작성한 C# 코드를 추가해 준다.

 

그러고 실행해보면 장애물과 충돌함과 동시에 플레이어(Ball)이 없어지고 2초뒤 해당 씬이 재시작 되는것을 볼 수 있다.

 

 

 

관련글 더보기