Почему Raycast2D не работает внутри обьекта? Unity2D
На игрока повешен скрипт с рейкастом, через него проверяю на наличие обьекта, если да то можно взаимодействовать. Если стоять сбоку, рядом все работает, если внутри него то использовать нельзя, как это исправить? На обьект повешен только BoxCollider2D с включенным isTrigger
скрипт с рейкастом
if(Ray.collider.CompareTag("Locker"))
{
AllowUseLocker = true;
Debug.Log("can use");
if (!HoldingController)
{
locker = closestItem.gameObject.GetComponent<LockerLogic>();
}
}
public void Action()
{
if(AllowUseLocker && !HoldingController)
{
locker.Hide();
Hiding = true;
Debug.Log("HIDE");
return;
}
Ответы (1 шт):
согласно с документацией https://docs.unity3d.com/ScriptReference/Physics-queriesHitBackfaces.html
By default, all physics queries such as a raycast or a shape sweep (e.g. SphereCastAll) won't detect hits with back-face triangles.
Перевод: По умолчанию все запросы к физике, такие как raycast или shape sweep (например, SphereCastAll), не будут принимать попадания внутреннюю сторону полигонов.
Это можно изменить через настройки физики кодом в Physics.queriesHitBackfaces
Вполне возможно это можно менять и через интерфейс юнити. Где именно эти настройки ищи в документации сам
