34 lines
977 B
C#
34 lines
977 B
C#
using UnityEngine;
|
|
|
|
public class Mouse3d : MonoBehaviour
|
|
{
|
|
public static Mouse3d Instance { get; private set; }
|
|
[SerializeField] private LayerMask _mouseColliderLayerMask = new LayerMask();
|
|
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
_mouseColliderLayerMask = transform.gameObject.layer;
|
|
}
|
|
private void Update()
|
|
{
|
|
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
|
if (Physics.Raycast(ray, out RaycastHit hit, 999f, _mouseColliderLayerMask))
|
|
{
|
|
transform.position = hit.point;
|
|
}
|
|
}
|
|
public static Vector3 GetMouseWorldPosition() => Instance.GetMouseWorldPosition_Instance();
|
|
private Vector3 GetMouseWorldPosition_Instance()
|
|
{
|
|
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
|
if (Physics.Raycast(ray, out RaycastHit hit, 999f, _mouseColliderLayerMask))
|
|
{
|
|
return hit.point;
|
|
}
|
|
return Vector3.zero;
|
|
}
|
|
}
|
|
|
|
|