Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티C#

유니티) 감지하는 광선 쏘기, 레이캐스트

UniCoti(유니코티) 2022. 9. 3.

유니티에서는 물체를 감지하는

수단으로 여러가지 방법이있다.

예를들면 콜라이더,

피직스의 over도형 -> 결국 콜라이더,

그중 하나가 레이이다.

 

레이는 쉽게 설명하자면

오브젝트를 감지하는 레이져라고 보면된다.

 

RaycastHit hit;

Update() {
	if(Physic.Raycast(transform.position, Vector3.forward, hit, Mathf.Infinity)) {
		//맞았을때 실행할 코드
		Destroy(hit.collider.gameObject);
	}
}

 

RaycastHit hit;은 맞은 오브젝트를 저장할 변수이고,

if(Physic.Raycast(레이져 시작 위치, 방향, 나오는 변수(맞은 오브젝트), 레이져 거리))
부분은 레이(져)가 아무 오브젝트에 맞으면 참(true)이되어 if문 안으로 들어가고,

레이져 거리를 Mathf.Infinity로 써주면 무한대로 간다.

 

그래서 저 코드를 해석하자면,

자신의 위치에서 무한대로 가는 레이져를 앞쪽 방향으로 발사하여

맞은 오브젝트를 삭제한다. 

이다.

레이져를 맞으면 없어지는 것이기에 파괴력을 가진 레이저라고 

게임에서 언급할수도 있겠다.

 

이렇게 레이는 다양한 곳에 쓸 수 있다.

시각적으로 표현하여, 빛이 튕기는 연출도 가능하고,

발밑의 오브젝트 감지, 총에 레이를 달아 표적 오브젝트 감지등

여러 곳에 쓰인다.

 

도움이 되었길 바라며,

 

끝.

댓글

💲 추천 글