Я строю пройденный путь, который проверяется игровым объектом (капсулой), используя raycast, направленный вниз, каждый куб имеет направление для правильного перемещения капсулы. Проблема в том, что капсула движется сразу же, когда лучевая передача попадает в куб, поэтому капсула движется по краю, но по центру.
Вот код, который я использую
RayDirection = (direction) => new Ray(transform.position, direction);
if (Physics.Raycast(RayDirection(-transform.up), out RaycastHit hit, 1.5f, 1 << 9))
{
switch (hit.transform.GetComponent<Path>().path)
{
case Path.Forward:
transform.position += Vector3.forward / 50;
break;
case Path.Back:
transform.position += Vector3.back / 50;
break;
case Path.Right:
transform.position += Vector3.right / 50;
break;
case Path.Left:
transform.position += Vector3.left / 50;
break;
}
}