Raycast2D.collider не равен нулю, хотя Debug.Ray ясно показывает другоеC#

Место общения программистов C#
Anonymous
Raycast2D.collider не равен нулю, хотя Debug.Ray ясно показывает другое

Сообщение Anonymous »

Debug.DrawRay и консоль:
Изображение

У меня есть скрипт для врага, который движется влево и вправо, а когда приближается к стене, движется в другом направлении.
Это часть сценария, обрабатывающая Raycasts, в обновлении

Код: Выделить всё

timer += Time.deltaTime;
Debug.Log("Right is " + right);
Debug.Log("Left is " + left);
if (timer > 1f)
{
raycastHitLeft = Physics2D.Raycast(new Vector2(transform.position.x - 1, transform.position.y), new Vector2(-2, 0));
Debug.DrawRay(new Vector3(transform.position.x - 1, transform.position.y, transform.position.z), new Vector3 (-2, 0, 0), Color.red, 1f);
raycastHitRight = Physics2D.Raycast(new Vector2(transform.position.x + 1, transform.position.y), new Vector2(2, 0));
Debug.DrawRay(new Vector3(transform.position.x + 1, transform.position.y, transform.position.z), new Vector3(2, 0, 0), Color.blue, 1f);
timer = 0;

Debug.Log("Raycast fired!");
}
Я попробовал переместить начальную позицию рейкаста подальше от врага, на случай, если это вызовет проблемы. И четырежды проверил, что на всех стенах есть коробчатые коллайдеры и что случайных коллайдеров вообще нет.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -othervise

Вернуться в «C#»