유니티

[유니티] RayCastHit, Physics2D.Raycast 요약정리

유니티 게임 개발 2024. 12. 27. 17:20

 

 

아래 코드를 보며 이해해보자.

 

RaycastHit2D hit = Physics2D.Raycast(transform.positionVector2.right1fLayerMask.GetMask("Player"));

 

transform.position 은 현재 오브젝트의 위치. 즉, Ray을 그려낼 "시작위치"다.

 

Vector2.right 는 오른쪽 방향. 즉, Ray를 그려낼 "방향"이다.

 

1f 는 Ray의 길이를 의미한다.

 

LayerMask.GetMask("Player")는 "Player"라는 레이어와 부딪혔는지 감지하는 것. 즉, 지정 레이어만 감지하는 것을 의미한다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Practice : MonoBehaviour
{
    void Update()
    {
        RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right, 1f, LayerMask.GetMask("Player"));

        Debug.DrawRay(transform.position, Vector2.right * 1f, Color.green);

        if (hit.collider == null) return;
        else
        {
            Debug.Log(hit.collider);
        }
    }
}

 

 

위 코드처럼 Debug.DrawRay 로 Ray의 모습을 그려볼 수 있다.

 

대신에 게임창이 아니라 Scene창에 그려진다.