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를 할당해주면 된다.
'Unity > Unity2D' 카테고리의 다른 글
점프 시 조정해야 할 요소 (0) | 2024.06.14 |
---|---|
Spine 오브젝트 스프라이트의 색 변경 (0) | 2024.04.26 |
Unity-Spine 연동하기 (0) | 2024.04.05 |
Tilemap 크기 바꾸기 (0) | 2023.10.30 |