using UnityEngine; public class GateOpenZone : MonoBehaviour { [Header("°ÔÀÌÆ® ¿ÀÇ °ü¸®ÀÚ")] [SerializeField] private RoomClearGateController roomClearGateController; [Header("Player Check")] [SerializeField] private string playerTag = "Player"; private bool used = false; private void OnTriggerEnter(Collider other) { if (used) { return; } if (!IsPlayer(other)) { return; } if (roomClearGateController == null) { Debug.LogWarning("RoomClearGateController°¡ ¿¬°áµÇÁö ¾Ê¾Ò½À´Ï´Ù."); return; } if (!roomClearGateController.IsRoomCleared) { Debug.Log("¾ÆÁ÷ ¹æ Ŭ¸®¾î ÀüÀÔ´Ï´Ù. °ÔÀÌÆ®¸¦ ¿­Áö ¾Ê½À´Ï´Ù."); return; } used = true; roomClearGateController.OpenClearGate(); } private bool IsPlayer(Collider other) { if (other.CompareTag(playerTag)) { return true; } if (other.transform.root.CompareTag(playerTag)) { return true; } return false; } }