using Gameplay.Level; namespace Gameplay { 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; } } }