본문 바로가기

Unity/Unity2D

Physics2D와 RaycastHit2D

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