안녕하세요. 고박사입니다. 제 강의를 수강해주셔서 감사합니다. 현재는 스크립트 작성할 때는 자막과 타이핑소리만 나는 것이 맞습니다. 유튜브 촬영이나 다른 강의에서도 타이핑 소리와 코드 설명을 위한 자막만 달아두었는데 소리가 나면 더 좋겠다는 의견이 있어 소리를 추가할 예정입니다. 보이스 오버 작업이 완료되는대로 다시 영상을 업로드하고, 공지사항에 게시하도록 하겠습니다. 감사합니다.
현재 사용하고 있는 유니티의 버전이 2022 이상의 버전이어서 New AI Navigation을 사용하고 있다면 장소 정보 검사 코드를 기존의 linkData.offMeshLink.area == offMeshArea 에서 if ( (navMeshAgent.navMeshOwner as NavMeshLink).area.Equals(offMeshArea) ) 와 같이 수정해야 합니다.
이 강의는 유니티 5(2017~2022) 기준으로 제작되어 Built-in RP를 사용했습니다. 현재 유니티 6는 기본 RP가 Universal이기 때문에 Shader의 문제로 색상이 깨지는 것입니다. 현재 스크린샷 기준으로 Material 폴더에 가면 바닥 표현을 위한 Material이 있을텐데 그 파일을 선택하고, Inspector View에서 Shader를 Universal Render Pipeline - Lit 으로 설정하면 검은 바닥이 보일겁니다.
OnTrigger, OnCollision 메소드는 Rigidbody2D를 가지고 있는 게임오브젝트 에서 작동합니다. 즉, Platform_00_Moving 오브젝트에 Rigidbody2D가 있을 때는 Platform_00_Moving 오브젝트에 있는 다른 컴포넌트에서 private void OnCollisionEnter2D() { .. } 가 호출되고, Platform 오브젝트에 Rigidbody2D가 있을 때는 Platform 오브젝트에 있는 컴포넌트에서 OnCollisionEnter2D()가 호출됩니다. 지금처럼 자식오브젝트들이 Rigidbody2D를 가지고 있지 않고, Collider2D만 가지고 있으면 자식들이 가지고 있는 Collider2D에 충돌이 발생하면 부모(Platform_00_Moving)에 있는 Rigidbody2D가 작동합니다. 단, 위에 작성한 것과 같이 Rigidbody2D가 작동할 때 OnTrigger, OnCollision 메소드를 호출하려면 Rigidbody2D와 동일한 오브젝트에 스크립트를 컴포넌트로 넣어줘야합니다. 오브젝트를 나눠서 관리하는 기준은 렌더링, 충돌 등과 같이 사용되는 곳에 따라 기준을 정해서 나눕니다. 그 기준이 정해져있진 않고, 회사, 프로젝트에 따라 다르게 설정될 수 있습니다.
1. 무기와 같이 SpriteRenderer를 이용해 레이어를 나눠준다. (모자 오브젝트, 망토 오브젝트 등) 2. SpriteResolver / Sprite Library를 이용해 각 부위에 SpriteResolver를 붙이고, 의상 세트를 SpriteLibrary로 관리 3. 본 애니메이션 방식 (Sprite Skin + PSD Importer) 의상 교체 파츠를 몇개로 할 지, 의상의 개수가 얼마나 되는지에 따라 위 방식 중에서 선택해 사용 가능합니다. 애니메이션이 복잡하지 않고, 의상의 개수가 많지 않으면 영상에서 나온 무기 처리 방식처럼 SpriteRenderer를 사용하는 것이 가장 쉽고, 가볍게 처리 가능합니다.