У меня есть NP C в моей игре, и он мне нужен, чтобы определить позицию игрока. Я пытаюсь использовать raycast для этой цели. Когда игрок находится перед NP C, он может его обнаружить. Это 3D тактическая ролевая игра. Каждый персонаж может перемещать только одну плитку за ход.
Однако проблема в том, что он не может определить, находится ли игрок слева, справа или позади него. Есть ли способ, которым я могу изменить углы Raycast?
Я создал эту сопрограмму для использования raycast от NP C. Я вызываю эту сопрограмму в методе Start:
ienumerator detectplayer()
{
yield return new waitforseconds(1f);
ray ray = new ray();
raycasthit hit;
ray.origin = transform.position + transform.forward;
ray.direction = transform.forward;
vector3 foward = transform.transformdirection(vector3.forward) * 10;
float duration = 15f;
debug.drawray(ray.origin, foward, color.red, duration);
if (physics.raycast(ray, out hit))
{
print("the game object" + hit.collider.gameobject.name + "is in front of the npc");
}
}