Ray 생성 : Ray 클래스는 시작 위치와 방향을 정의하여 Ray를 만듭니다.
예를 들어, Ray ray = new Ray(transform.position, transform.forward);
는 현재 오브젝트 위치에서 정면 방향으로 Ray를 생성합니다.
Raycast : Physics.Raycast 함수를 사용해 Ray가 다른 Collider와 충돌하는지를 검사합니다.
예를 들어, Physics.Raycast(ray, out RaycastHit hitInfo, maxDistance)
와 같이 사용하면 지정한 거리 내에서 Ray와 충돌한 첫 번째 오브젝트에 대한 정보를 얻을 수 있습니다.
RaycastHit : Raycast가 충돌한 오브젝트의 정보를 포함합니다. hitInfo.collider
를 통해 충돌한 오브젝트의 Collider에 접근할 수 있습니다.
using UnityEngine;
public class RayExample : MonoBehaviour
{
void Update()
{
// 카메라에서 마우스 위치로 향하는 Ray 생성
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// RaycastHit에 충돌 정보 저장
RaycastHit hitInfo;
// Raycast를 사용하여 충돌 감지
if (Physics.Raycast(ray, out hitInfo, 100f)) // 100f는 Ray의 최대 거리
{
Debug.Log("충돌한 오브젝트: " + hitInfo.collider.name);
}
}
}
int layerMask = LayerMask.GetMask("Enemy");
if (Physics.Raycast(ray, out hitInfo, 100f, layerMask))
{
Debug.Log("Enemy 레이어 오브젝트와 충돌!");
}