유니티
[유니티]RayCast2D,RayCastHit2D
seyeol
2023. 3. 1. 15:38
반응형
[1] RayCast2D는 왜, 언제 사용하는것일까
터치한 오브젝트의 정보를 가져오거나 체크를 할때 그리고 물체의 Collider간의 충돌의 체크할때 주로 사용하는것 같다
[2] RayCast2D는 어떻게 사용하는것일까
RaycastHit2D는 true와 false를 반환합니다
Physics2D.RayCast로 Ray라는 광선을 쏩니다
그리고 Debug.DrawRay를 같이 사용하여 현재 광선을 시각화 해줍니다
RayCast의 속성에는 이런것들이 있는데
Origin은 Ray 광선의 시작점
Direction은 Ray 광선의 방향
Ditance는 Ray 광선의 최대길이
LayerMask는 지정한 레이어만 감지하는것
MinDepth는 지정한 Z좌표의 값보다 >= 크거나 같은 개체만 감지할수있게
MaxDepth는 지정한 Z좌표의 값보다 <= 작거나 같은 개체만 감지할수있게
[Debug.DrawRay]
Debug.DrawRay는 내가 발사한 광선을 시각화 시켜주는 것입니다
이것의 속성은
Start는 Ray광선의 시작점
Dir은 광선의 방향과 길이
Color는 광선의 색깔
Duration 광선의 지속시간
DepthTest는 광선과 물체가 겹쳤을때 카메라에 더 가까운 물체에 광선이 가려져야하는지 여부 true or false
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Raycast2D : MonoBehaviour
{
public float distance;
// Update is called once per frame
void Update()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, distance);
Debug.DrawRay(transform.position, transform.right * distance, Color.yellow);
if(hit.collider != null)
{
print(hit.transform.name);
}
}
}
영상 처럼 Scene뷰에 광선이 보일 텐데 이 광선이 보이지 않는다면 씬뷰 탭의 GIzmo를 활성화 시켜주셔야지 보이게 됩니다
그리고 Collider 2D가 감지할 오브젝트에 없다면 감지 할수 없습니다