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

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)
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • 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 (5)
      • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바