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를 할당해주면 된다.