NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Utils/GroundHitHelper.cs

32 lines
945 B
C#

using Gameplay.Level;
namespace Gameplay.Utils
{
using UnityEngine;
public static class GroundHitHelper
{
private static RaycastHit[] _raycastHits = new RaycastHit[10];
public static int CalcHitCellIndex(Vector2 mousePose)
{
var map = LevelManager.Instance.CurrentLevel.Map;
var camera = Camera.main;
var ray = camera.ScreenPointToRay(mousePose);
var layerMask = LayerMask.GetMask("Ground");
var raycastCount = Physics.RaycastNonAlloc(ray, _raycastHits, 1000, layerMask);
if (raycastCount > 0)
{
var firstHit = _raycastHits[0];
var hitPoint = firstHit.point;
if (map.WorldPosition2TGSCellIndex(hitPoint, out var cellIndex))
{
return cellIndex;
}
}
return -1;
}
}
}