Я новичок в Unity3D и у меня проблема с обнаружением столкновений.Я хочу вернуть истину, если столкнусь с препятствием посредством радиопередачи и заблокирую движение в этом направлении.Это хорошо работает, когда я нахожусь перед препятствием лицом к лицу.Когда я меняю направление и нахожусь перед препятствием (но с другим направлением лица), он возвращает ложь, и я все еще могу двигаться во всех направлениях (это должно блокировать движение "вверх", как вы видите на первом изображении).Любые советы будут с благодарностью!
Возвращает истину, когда перед нами препятствие, и мы не можем двигаться "вверх"
Возвращает ложь, когда слева или справа находится препятствие
Игрок заблокирован после неправильного хода
Вот пример моего кода:
void Update()
{
Ray myRay = new Ray(transform.position, Vector3.right);
Debug.DrawRay(transform.position, Vector3.right, Color.red);
if (Physics.Raycast(myRay, out hit, 1.5f))
{
if (hit.collider.gameObject.tag == "TerrainObject")
{
Debug.DrawRay(transform.position, Vector3.right, Color.blue);
upHit = true;
}
}
else
upHit = false;
...
}