How to create car ai that moves around searching for player
Hello pals, i have been stuck in my project for sometime now. I want to implement a car ai(with obstacle avoidance) that looks for player and follows him around. Please am not talking about the type of ai that is used in car racing game that follows a particular way point. The ai should just wonder around searching for player. I have tried every means, but is not working(even NavMeshAgent acts abnormally). I need suggestion on how to implement this or advice on assets in the asset store that can do this for me. @ Oribow you made suggestions on some other posts, but weren't specific. Assist if you can
I have tried every means, but is not working(even Nav$$anonymous$$eshAgent acts abnormally).
Let's see some details of one of those means. A lot of people are succesfully using Nav$$anonymous$$eshAgents so i don't think it's broken or anything
@Nose$$anonymous$$ills i really appreciate your effort in trying to help. I tried to use Nav$$anonymous$$eshAgent, but the car moves with its back, the wheel doesn't rotate and it doesn't play the appropriate sound when moving. Rather it plays the engine idle sound. I think this problem is only seen when implementing Nav$$anonymous$$eshAgent on car ai. Here is the code for the car ai
public class AICharacterControl : $$anonymous$$onoBehaviour { public Nav$$anonymous$$eshAgent agent { get; private set; } // the navmesh agent required for the path finding public CarController character { get; private set; } // the character we are controlling private GameObject myTarget;
// Use this for initialization
private void Start()
{
// get the components on the object we need ( should not be null due to require component so no need to check )
agent = GetComponentInChildren<Nav$$anonymous$$eshAgent>();
character = GetComponent<CarController>();
myTarget = GameObject.FindGameObjectWithTag("Player");
agent.updateRotation = false;
agent.updatePosition = true;
}
// Update is called once per frame
private void Update()
{
// agent.SetDestination(target.position);
agent.SetDestination(myTarget.transform.position);
// character.$$anonymous$$ove (0f, 0f, 0f, 0f);
// character.$$anonymous$$ove(float steering, float accel, float footbrake, float handbrake)
}
Here is the equivalent for a humanoid
agent.SetDestination(target.position);
// use the values to move the character
character.$$anonymous$$ove(agent.desiredVelocity, false, false);
I commented the car ai character.move method because there is no equivalent Nav$$anonymous$$eshAgent parameter that fits in.