간단하게 오브젝트 간의 각도 구하는 방법

2023. 11. 24. 11:50·Unity
반응형

이전 게시글에서 내각을 이용해 두 물체간의 각도를 구하는 방법에 대해서 설명했습니다.

이번 글에서는 Vector3.SignedAngle() 함수를 이용해 시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 방법을 설명하겠습니다.

 

Vector3.SignedAngle() 함수

Vector3.SignedAngle() 함수는 두 벡터의 방향 사이의 각도를 구하는 함수입니다. 이 함수는 부호가 있는(-180 ~ 180)각도를 반환합니다.

float SignedAngle(Vector3 from, Vector3 to, Vector3 axis)
//from: 시작 벡터
//to: 목표 벡터
//axis: 회전 축 벡터

 

이 함수는 두 벡터 from과 to의 방향 사이의 각도를 axis를 기준으로 계산하며, 결과값은 부호를 가지는 각도입니다

 

예제 코드

다음은 시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 예제 코드입니다.

bool IsTargetInSight(float range)
{
    Vector3 direction = target.transform.position - transform.position;
    //transform의 Y축 기준으로 transform의 정면과 방향 사이의 각을 계산합니다
    float angle = Vector3.SignedAngle(transform.forward, direction, transform.up);

    if(Mathf.Abs(angle) > range) return false;
    return true;
}

이 코드에서 range는 시야 범위의 각도를 나타내는 값입니다.

 

결론

Vector3.SignedAngle() 함수를 이용하는 방법은 오브젝트의 시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 간단하고 효과적인 방법입니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity' 카테고리의 다른 글

Unity의 Collision에 관하여  (1) 2023.11.30
Unity의 PointEventData 클래스  (1) 2023.11.27
Vector3 : Lerp, SmoothDamp, MoveTowards 비교  (0) 2023.11.23
헷갈리는 오브젝트 회전 방법 Part 2 (Lerp, Slerp, RotateTowards)  (0) 2023.11.22
시야 범위에 타켓 오브젝트가 들어와 있는지 확인하는 방법  (0) 2023.11.21
'Unity' 카테고리의 다른 글
  • Unity의 Collision에 관하여
  • Unity의 PointEventData 클래스
  • Vector3 : Lerp, SmoothDamp, MoveTowards 비교
  • 헷갈리는 오브젝트 회전 방법 Part 2 (Lerp, Slerp, RotateTowards)
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    programming101
    라떼우유
    쇼핑몰리뷰
    list
    카페24리뷰
    믈레코비타멸균우유
    카페24리뷰이관
    스크립트 실행 순서
    rtsp
    C#
    스마트스토어리뷰
    유니티
    codingtips
    codingcommunity
    ipcamera
    파이썬
    리뷰관리
    programmerlife
    셀레니움
    devlife
    상품 리뷰 크롤링
    리스트
    appdevelopment
    Python
    cv2
    리뷰이관
    unity
    learntocode
    긴유통기한우유
    스크립트 실행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
간단하게 오브젝트 간의 각도 구하는 방법
상단으로

티스토리툴바