57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
using UnityEngine;
|
|
|
|
public class RaftRideEndHandler : MonoBehaviour
|
|
{
|
|
[Header("Player")]
|
|
[SerializeField] private Transform xrOrigin;
|
|
|
|
[Tooltip("도착 후 XR Origin을 뗏목에서 분리할지 여부")]
|
|
[SerializeField] private bool detachPlayerFromRaft = true;
|
|
|
|
[Header("Exit / Land")]
|
|
[SerializeField] private Transform exitPoint;
|
|
|
|
[Tooltip("도착 후 켤 육지 이동 구역, 안내 오브젝트, 길 표시 등")]
|
|
[SerializeField] private GameObject landAreaObject;
|
|
|
|
[Header("Next Mission")]
|
|
[Tooltip("도착 후 활성화할 조개 미션 오브젝트")]
|
|
[SerializeField] private GameObject clamMissionObject;
|
|
|
|
[Tooltip("처음에는 꺼두었다가 나중에 기억의 조각 획득 후 켤 문")]
|
|
[SerializeField] private GameObject nextDoorObject;
|
|
|
|
public void OnRaftArrived()
|
|
{
|
|
Debug.Log("[RaftRideEndHandler] 뗏목 도착 처리 시작.");
|
|
|
|
if (detachPlayerFromRaft && xrOrigin != null)
|
|
{
|
|
xrOrigin.SetParent(null);
|
|
}
|
|
|
|
if (exitPoint != null && xrOrigin != null)
|
|
{
|
|
// 강제로 이동시키고 싶지 않으면 이 부분은 주석 처리해도 됨.
|
|
// xrOrigin.position = exitPoint.position;
|
|
// xrOrigin.rotation = exitPoint.rotation;
|
|
}
|
|
|
|
if (landAreaObject != null)
|
|
{
|
|
landAreaObject.SetActive(true);
|
|
}
|
|
|
|
if (clamMissionObject != null)
|
|
{
|
|
clamMissionObject.SetActive(true);
|
|
}
|
|
|
|
if (nextDoorObject != null)
|
|
{
|
|
nextDoorObject.SetActive(false);
|
|
}
|
|
|
|
Debug.Log("[RaftRideEndHandler] 이제 플레이어가 육지로 이동해 조개 미션을 진행할 수 있습니다.");
|
|
}
|
|
} |