피너클의 it공부방
유니티2D 적 시야 간단하게 만들기 본문
728x90
반응형
먼저 적 오브젝트에 Circle Collider 2D를 넣어주고 Trigger를 체크해준다.
void OnTriggerStay2D(Collider2D other){
if(other.tag == "Player"){
Vector3 direction = other.transform.position - transform.position;
float angle = Vector2.Angle(direction, transform.right);
if(angle < fieldOfViewAngle * 0.5f){
Debug.DrawRay(transform.position, (other.transform.position - transform.position).normalized * 100f, Color.red);
}
else{
Debug.DrawRay(transform.position, (other.transform.position - transform.position).normalized * 100f, Color.blue);
}
}
}
트리거를 항상 체크하며 만약 트리거 안에 들어온 오브젝트의 tag가 Player일 경우 조건문을 실행하며
fieldOfViewAngle 보다 작으면, 즉 적의 시야 안에 들어있으면 빨간 색으로 ray를 쏘고
fieldOfViewAngle 보다 크면, 즉 적의 시야 밖에 있으면 파란 색으로 ray를 쏘게 했다.
transform.right를 기준으로 시야를 정했기 때문에 오른쪽에 시야각이 존재한다.
오른쪽 50도 안으로 들어가면 빨간선이 그려지는걸 볼 수 있다.
728x90
반응형
'유니티 여러가지' 카테고리의 다른 글
유니티 Quaternion.AngleAxis (0) | 2024.11.03 |
---|---|
유니티 Mathf.Atan2 and Mathf.Rad2Deg (0) | 2024.11.02 |
유니티2D 탑다운 밀어서 여는 문 만들기 (0) | 2024.10.29 |
유니티2D 시네머신 이용해서 카메라가 플레이어 따라다니게 만들기 (0) | 2024.10.26 |
유니티 2D 마우스 방향으로 레이캐스트 쏘기 (0) | 2024.10.25 |
Comments