아래 코드를 보며 이해해보자.
RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.right, 1f, LayerMask.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창에 그려진다.
'유니티' 카테고리의 다른 글
[유니티] 창 종료, 창 닫기 매서드 (0) | 2024.12.29 |
---|---|
[유니티] 2단 점프 코드 (2) | 2024.12.27 |
[유니티] LoadScene 주의할 점 (0) | 2024.12.26 |
[유니티] Unity로 만들어진 게임, 프로젝트, 서비스 조사하기 (0) | 2024.12.26 |
[유니티] Collision VS Collider 차이 (1) | 2024.12.25 |