장애물을 만들기 위해 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초뒤 해당 씬이 재시작 되는것을 볼 수 있다.
11. 장애물 랜덤 배치 C# 스크립트 (0) | 2023.06.08 |
---|---|
10. 장애물 배치, 태그 지정하기 (0) | 2023.06.07 |
8. 타일 박스 콜라이더에 닿으면 삭제하기 (0) | 2023.06.07 |
7. 끝없이 무한 달리기 만들기 (1) | 2023.06.07 |
6. 프리팹(Prefabs)만들기 (0) | 2023.06.06 |