My ray pointing into infinity (I suppose)
Hello everyone!
I have a problem with Ray (I think). I have 2 players spawned on terrain, Player 1 is local (I control it) Player 2 is remote (someone else controls it). I have simple method to move the Player from one place to another:
public void MoveToPoint(Ray ray)
{
RaycastHit hit;
if (Physics.Raycast(ray, out hit, maxDistance))
{
navMeshAgent.destination = hit.point;
navMeshAgent.Resume();
walking = true;
}
}
I move Player 1 (my local) building Ray like this:
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
And it works like a charm. The problem is when I want to render movement of Player2.
When I do something like this:
player2.transform.position = new Vector3(x, player2.transform.position.y, z);
It moves Player2 to correct position, but it is not moving, just "teleporting" it to the other place. Then I used my method to moving the player and build ray like this instead:
Vector3 newPosition = new Vector3(x, 0, z);
Ray ray = new Ray(player2.transform.position, newPosition - player2.transform.position);
player2.GetComponent<PlayerMovement>().MoveToPoint(ray);
And now Player2 is running as long as it will hit something. Looks like the Ray is not pointing to the place right near to Player2 but in infinity.
Please help me if you can, what am I missing here.
Thanks in advance.
Your answer
Follow this Question
Related Questions
How to rotate NavMesh Agent to the surface it is walking on 2 Answers
How to reflect raycast rays of objects 2 Answers
Optimizing fog of war in 3D environment 0 Answers
Raycast not always detecting floor 1 Answer
Raycasting onto a Nav Mesh Agent 0 Answers