Notice
Recent Posts
Recent Comments
Link
250x250
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

피너클의 it공부방

유니티2D 적 시야 간단하게 만들기 본문

유니티 여러가지

유니티2D 적 시야 간단하게 만들기

피너클 2024. 10. 30. 12:00
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
반응형
Comments