Я использую сферу с радиусом 4 юнита, 2 юнита перед игроком, и bool возвращает true для определенного интервала дальних расстояний; от 5 единиц перед игроком до максимального расстояния (радиус + 2 единицы)
Не уверен, что именно так должны работать шаровые трансляции, но если это так, можно ли заставить bool возвращать значение true при обнаружении попаданий внутри всей сферы?
private void Locking(RaycastHit hit)
{
if (Physics.SphereCast(transform.position, 4f, transform.forward, out hit, 2f, lmask, QueryTriggerInteraction.UseGlobal))
{
Vector3 hitp = new Vector3(hit.transform.position.x, 0, hit.transform.position.z);
transform.LookAt(hitp);
}
}