- Home /
How can I rotate ball with NavMeshAgent?
Hello, I have a two simple balls, one of them controlls by player and another one - by AI (NavMeshAgent). Balls always moves forward and I want to rotate them in appropriate direction. For player I use this script and it works fine
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mover : MonoBehaviour {
public float speedForward;
public float speedSide;
private Rigidbody rb;
private void Start () {
rb = GetComponent<Rigidbody> ();
}
private void FixedUpdate () {
float moveForward = speedForward* Time.deltaTime;
float moveSide = Input.GetAxis ("Horizontal") * speedSide * Time.deltaTime;
rb.angularVelocity = new Vector3 (moveForward, rb.angularVelocity.y, -moveSide);
}
}
and here is the script I use for AI ball.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class EnemyAI : MonoBehaviour {
private NavMeshAgent navMesh;
private Rigidbody rb;
void Start () {
navMesh = GetComponent<NavMeshAgent> ();
Vector3 target = GameObject.FindWithTag ("Finish").transform.position;
navMesh.SetDestination (target);
rb = GetComponent<Rigidbody> ();
}
private void FixedUpdate () {
// rotates in wrong direction
rb.angularVelocity = new Vector3 (rb.velocity.x, rb.velocity.y, rb.velocity.z);
// doesnt rotate as I excpect
// rb.angularVelocity = new Vector3 (rb.velocity.y, rb.velocity.z, rb.velocity.x);
}
}
but it rotates around wrong axis. I axis it to this, but it doesn't rotate at all
rb.angularVelocity = new Vector3 (rb.velocity.y, rb.velocity.z, rb.velocity.x);
Here is video with result. https://www.youtube.com/watch?v=a_gPGcex6u0&feature=youtu.be Green ball - player, red - AI. And as you can see, green ball rotates good, but red - not. I forgot to say - there is a Friction Material attached to every ball
Your answer
Follow this Question
Related Questions
How do I get NavMeshAgents not to walk through objects? 3 Answers
gameobject.GetComponent().target is not working 1 Answer
Survival Shooter Tutorial fix for Unity 5 3 Answers
Rotating without slowing down before reaching target 3 Answers
Click to move, navAgent and mecanim = animation playing too early 0 Answers