맵 제작
이번 맵 제작은 딱히 어려운 부분은 없었지만, 반복적인 작업이 많아 다소 귀찮았던 부분이 많았다.
방을 만들면서 혹시 나중에 랜덤으로 방을 배치해야 할 상황이 생길 수 있을 것 같아, 모든 방의 규격을 동일하게 맞추고 프리팹화시켜 관리했다. 덕분에 나중에 방을 조합하거나 재사용할 때 쉽게 사용할 수 있을 것 같다.
이번에 작성한 스크립트는 문을 여닫는 간단한 스크립트다. 문이 플레이어의 접근을 감지하면 열리고, 일정 시간이 지나면 자동으로 닫히도록 설정했다.
public class Door : MonoBehaviour
{
private bool isOpen = false;
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
if (!isOpen)
{
animator.SetBool("IsOpen", true);
isOpen = true;
StartCoroutine(CloseDoor());
}
}
}
void OnTriggerStay(Collider other)
{
if (other.CompareTag("Player"))
{
if (!isOpen)
{
animator.SetBool("IsOpen", true);
isOpen = true;
StartCoroutine(CloseDoor());
}
}
}
IEnumerator CloseDoor()
{
yield return new WaitForSeconds(3);
animator.SetBool("IsOpen", false);
isOpen = false;
}
}
이 스크립트는 문에 트리거를 설정하여, 플레이어가 문 앞에 오면 문이 3초간 열리고 다시 닫히는 동작을 수행한다.
엔딩 방의 문은 별도의 스크립트를 작성하여, 플레이어가 G키를 눌렀을 때만 문이 열리도록 구현했다.
0
맵 탐험
맵을 돌아다니는 존 레몬을 테스트해보니 꽤 귀엽게 움직인다. 현재는 기본적인 맵 구조만 구현해둔 상태지만, 앞으로 더 디테일한 요소들을 추가할 예정이다.
피드백 및 수정 예정
투명화 처리된 오브젝트에 대한 피드백이 있었다. 현재 오브젝트가 투명해지는 범위가 다소 좁아 어색한 느낀이 난다. 이 부분은 나중에 맵을 전체적으로 다듬을 때 수정할 계획이다.
'Unity > John Lemon in Nightmareland' 카테고리의 다른 글
Unity Piscine Module06 - 8. Post Processing 적용 (0) | 2024.08.27 |
---|---|
Unity Piscine Module06 - 7. 열쇠 수집 / 엔딩 애니메이션 구현 (0) | 2024.08.27 |
Unity Piscine Module06 - 5. FPS / TPS 시점 적용 (0) | 2024.08.25 |
Unity Piscine Module06 - 4. 움직임 구현 (0) | 2024.08.22 |
Unity Piscine Module06 - 3. 메인 메뉴 만들기 (0) | 2024.08.21 |