ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Physics.Raycast 함수
    Unity 2023. 3. 28. 12:47

    Physics.Raycast 함수는 내가 설정한 (게임오브젝트의) 위치에서 설정한 방향으로

    설정한 범위 내에서 충돌체의 정보를 가져올 수 있는 함수이다.

     

    레이저를 발사한다고 이해하면 쉽다.

    설정 위치에서 내가 세팅한 방향으로 레이저를 쐈을 때 부딪히는 충돌체의 정보를 가져오는 것이다.

     

    {
    public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance, int layerMask)
    }

    Vector3 origin = 레이저 발사할 위치

    Vector3 direction = 레이저 발사할 방향

    out RaycastHit hitInfo = 충돌체의 정보

    float maxDistance = 발사할 최대 범위

    int layerMask = 정보를 가져올 레이어

     

     

     

    예시를 들어보자.

    {
        RaycastHit hit;
        float maxDistance = 100;
        Gizmos.color= Color.yellow;
        bool isHit = Physics.Raycast(transform.position, transform.forward, out hit, maxDistance);
        
        if(isHit)
        {
        	Gizmos.DrawRay(transform.position, transform.forward * hit.distance);
        }
        else
        {
        	Gizmos.DrawRay(transform.position, transform.forward * maxDistance);
        }
    }

    RaycastHit 구조체로 충돌체의 정보를 받아올 수 있다.

    (RaycastHit이 transform에 접근할 수 있다는 얘기는 결국 객체를 제어할 수 있다는 얘기다.)

    isHit 은 현재 오브젝트의 위치에서100의 범위까지

    앞으로 레이저를 쐈을 때 충돌체를 가져올 수 있다는 bool 형 변수이다. ( true or false )

     

    만약 isHit 이 true 면 hit.distance (충돌체와의 거리)를 기즈모로 그려낸다.

    만약 isHit 이 false면 maxDistance (100의 범위)를 기즈모로 그려낸다.

    'Unity' 카테고리의 다른 글

    애니메이션 간단 비교  (0) 2023.03.28
    Collision 과 Trigger 의 간단 설명  (1) 2023.03.25
    마우스 커서(Cursor) 숨기기  (0) 2023.03.24
    InvokeRepeating 함수  (0) 2023.03.24
    Mathf.Sqrt( ) 함수  (0) 2023.03.23
Designed by Tistory.