본문 바로가기
TIL

01.24 (TIL-Unity)

by 오랑이귀엽다 2024. 1. 24.

구현한 기능: 자동 문 닫힘 기능 (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