▣ 코드 설명
boxSize: BoxCast의 크기를 정의하는 변수로, Vector3 타입으로 x, y, z 축에서 박스의 크기를 설정합니다. 박스의 절반 크기를 사용하여 충돌 감지를 수행합니다.
예: new Vector3(1f, 1f, 1f)는 1x1x1 크기의 박스를 의미합니다.
castDistance: BoxCast가 얼마나 멀리 감지할지를 결정하는 거리 값입니다. 박스가 이 거리만큼 직선으로 나아가며 충돌을 감지합니다.
itemLayer: 감지할 대상의 레이어를 설정하기 위한 변수입니다. 특정 레이어에 속한 오브젝트들만 감지하려면 이 값을 설정합니다.
예: 아이템 레이어를 설정해 불필요한 오브젝트와의 충돌을 무시할 수 있습니다.
debugDuration: 디버그 라인이 화면에 얼마나 오래 보일 지를 설정하는 변수로, Debug.DrawLine과 Debug.DrawRay 함수에 적용됩니다. 값은 초 단위로 설정됩니다.
예: 2f로 설정하면 디버그 라인이 2초 동안 화면에 표시됩니다.
CollectItem() 함수: E 키를 누르면 호출되는 함수로, BoxCast를 실행하여 아이템을 탐지하고 획득하는 기능을 담당합니다.
Physics.BoxCastAll: BoxCast를 사용하여 아이템을 감지합니다. 감지된 오브젝트는 RaycastHit[] 배열에 저장되며, 이 배열을 순회하며 아이템을 처리합니다.
아이템이 감지되면 해당 아이템의 이름을 Debug.Log()로 출력하고, 아이템을 비활성화(SetActive(false))하여 획득 처리합니다.
DebugBoxCast() 함수: BoxCast의 모양과 방향을 시각적으로 확인할 수 있도록 Debug.DrawLine과 Debug.DrawRay를 사용하여 박스의 모서리와 끝점을 그립니다.
이 함수는 박스의 모양을 시각적으로 그리기 위해 8개의 모서리 좌표를 계산하고, 그 모서리들 사이를 연결하는 선을 그립니다.
박스가 진행되는 방향을 Debug.DrawRay로 그려줍니다.
▣ 주요 Unity API 설명
Physics.BoxCastAll
직육면체 형태의 박스를 기준으로 캐스팅(충돌 감지)을 수행합니다.
감지된 모든 오브젝트를 RaycastHit[] 배열로 반환하며, 이 배열을 순회하여 충돌한 오브젝트들에 대한 처리를 할 수 있습니다.
Debug.DrawRay
시작점과 방향을 지정하여 화면에 레이(선)를 그립니다. 디버깅 목적으로 충돌 또는 경로를 시각적으로 확인할 때 사용합니다.
지속시간을 설정할 수 있으며, 이를 통해 레이가 일정 시간 동안 보이도록 할 수 있습니다.
Debug.DrawLine
두 점 사이에 선을 그려 시각적으로 확인할 수 있는 디버그 도구입니다. 시작점과 끝점을 설정하여 특정 방향이나 경로를 시각화합니다.
지속시간을 설정하여 선이 몇 초 동안 보일지를 제어할 수 있습니다.
https://docs.unity3d.com/ScriptReference/Physics.BoxCastAll.html
https://docs.unity3d.com/ScriptReference/Debug.DrawRay.html
https://assetstore.unity.com/packages/3d/characters/survivalist-character-181470
'[ Unity ] > - 유니티 실습' 카테고리의 다른 글
유니티 AI 상태 코드 (0) | 2024.10.04 |
---|---|
유니티 3D Weapon Fire(RayCast, 반동, 쉐이크) (4) | 2024.10.03 |
유니티 Build Setting (7) | 2024.10.02 |
유니티 Avatar Make 활용 조준, 발사 애니 재생 (14) | 2024.10.01 |
유니티 3D Aim Animation Rigging (2) | 2024.09.30 |
댓글