Unity/Unity2D
Physics2D와 RaycastHit2D
SharpSteamedBread
2024. 8. 24. 01:13
2D 프로젝트를 진행하면서 Ray 인식이 잘 안되길래 확인해봤는데, RaycastHit와 Physics를 3D로 사용하고 있어서 그런 것이었다...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectBeam : MonoBehaviour
{
[SerializeField] private LayerMask groundLayer;
[SerializeField] private float rayDistance = 100f;
void Update()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector3.down, Mathf.Infinity, groundLayer);
Debug.DrawRay(transform.position, new Vector3(0, -1 * hit.distance, 0), Color.white);
Debug.Log($"hit Point: {hit.point}, 거리: {hit.distance}");
}
}
아니 그러면 Physics2D에는 out hit 오버로드가 없던데 어떻게 해야하나요? 그러면 RaycastHit2D 자체를 지역변수로 선언하여 Raycast를 할당해주면 된다.