구현한 기능: 자동 문 닫힘 기능 (Auto-Close Door)
1. 시간 기준 자동 문 닫힘:
- 목적: 일정 시간이 지난 후 자동으로 문을 닫기 위함.
- 사용한 스크립트: SW_AutoCloseDoor
- 변경된 코드:
더보기
// 시간 기준 자동 닫힘 로직
private IEnumerator AutoCloseDoor()
{
yield return new WaitForSeconds(autoCloseDelay); // 지정된 지연 시간 후 실행
// 문 닫힘 로직
}
사용 이유: 사용자가 문을 통과한 후 자동으로 닫히게 하여 게임의 리얼리티를 증가시키고, 플레이어의 추가적인 입력을 줄이기 위함.
2. 트리거 기준 자동 문 닫힘:
- 목적: 플레이어가 특정 영역(트리거)에 들어갔을 때 문을 자동으로 닫기 위함.
- 사용한 스크립트: SW_AutoCloseDoor
- 변경된 코드:
더보기
void OnTriggerEnter(Collider other)
{
// 플레이어 태그와 충돌했는지 확인
if (other.CompareTag("Player") && !hasAutoClosed)
{
CloseDoor(); // 문 닫힘 로직
}
}
private void CloseDoor()
{
// 태그 변경 및 문 닫힘 애니메이션
}
사용 이유: 플레이어가 특정 영역에 진입하는 것을 기반으로 문을 자동으로 제어하여 게임의 상호작용성을 증가시키기 위함.
트러블슈팅: 트리거 오브젝트 문제
-
- 왜(Why): 자동 문 닫힘 기능은 게임 내에서 공간을 나누거나 플레이어의 이동을 제어하는 데 중요한 역할을 합니다. 트리거 기반으로 문 닫힘 기능을 제대로 구현하지 못하면, 게임 플레이의 흐름이 방해받거나 예상치 못한 방식으로 진행될 수 있습니다. 따라서, 이 기능의 정확한 작동은 사용자 경험과 게임 디자인의 의도를 충족시키는 데 필수적입니다.
- 어떻게(How): 문제의 원인을 분석하기 위해, 기존에 시간 기준으로 구현된 문 닫힘 기능의 작동 방식을 검토했습니다. 이 과정에서, 기능이 문 객체에 할당된 스크립트를 기반으로 작동한다는 것을 확인했습니다. 그러나 트리거 기반으로 변경하면서, 트리거 오브젝트에 스크립트를 할당해야 한다는 필요성을 인지했습니다.
- 무엇(What): SW_AutoCloseDoor 스크립트를 트리거 오브젝트에 할당하는 방식으로 문제를 해결했습니다. 이 변경을 통해, 플레이어가 트리거 영역에 들어갈 때 자동으로 문이 닫히도록 기능을 수정했습니다. 이로써, 트리거 기반의 문 닫힘 기능이 예상대로 작동하게 되었고, 게임 플레이의 흐름을 원활하게 유지할 수 있게 되었습니다.
'TIL' 카테고리의 다른 글
01.26 (TIL-Unity) (0) | 2024.01.26 |
---|---|
01.25 (TIL-Unity) (0) | 2024.01.25 |
01.23 (TIL-Unity) (0) | 2024.01.23 |
01.22 (TIL-Unity) (0) | 2024.01.22 |
01.19(TIL-Unity) (0) | 2024.01.19 |