1. 시야각 구현
- AI오브젝트를 위에서 아래로 바라보았을때 Z축이 transform.forward 이고, x축이 transform.right이다
- AI의 시야각이 60도라고 한다면 θ는 30도가 되고
- 우리는 방향값인 벡터만 알면되기 때문에 아래 원의 반지름을 1이라고 가정한다
- 그러면 30도 각도에 위치한 단위벡터값은 (sin θ, cos θ)가된다
참조: 유투브 케이디
youtube.com/watch?v=jY49bG8Z7KQ&list=PLUZ5gNInsv_PZPDqJSs6IQVRFPQTbf9t6&index=2
2.시야 부채꼴 그리기
참조: ansohxxn.github.io/unitydocs/handles/
DrawSolidArc
- DrawSolidArc 색깔이 꽉 채워져 칠해져 있는 부채꼴(Arc)를 그린다.
- 인수
- Handles.DrawSolidArc(eyeTransform.position, Vector3.up, leftRayDirection, fieldOfView, viewDistance);
- 시야 각이 그려지는 위치인 eyeTransform.position 에서 그려지며 (Vector3 center)
- Vector3.up 축을 기준으로 회전한 부채꼴 (Vector3 normal)
- leftRayDirection 을 부채꼴 시작점으로 (from Vector3)
- 오른쪽으로 fieldOfview 각도만큼 회전한 (float angle)
- 중심으로부터 호가 그려지는 길이는, 즉 반지름이 viewDistance 인 Arc를 그린다. (float radius)
- Handles.DrawSolidArc(eyeTransform.position, Vector3.up, leftRayDirection, fieldOfView, viewDistance);
- 인수
*Handles를 쓰기위해선 상단에 using UnityEditor;가 네임스페이스가 필요함
*OnDrawGizMos(){}는 씬뷰에만 보이는 이벤트 함수
'Unity > Unity3D_Quater' 카테고리의 다른 글
Unity3D_Quater - 버그 및 디버깅(1) (0) | 2021.03.31 |
---|---|
Unity3D_Quater - AI시야 구현 적용 (0) | 2021.03.31 |
Unity3D_Quater - 코루틴 최적화 (0) | 2021.03.25 |
Unity3D_Quater - 코인자석 만들기 (1) | 2021.03.25 |
Unity3D_Quater - 게임오버 및 게임오버 메뉴 만들기 (0) | 2021.03.23 |