Enemy Ai Help?
So i'm really new to unity but have made a map and put a 3d model in for the enemy, I can't find out how to make him follow me and not clip through the ground. I need help.
Answer by tiggy02 · Dec 21, 2016 at 03:32 PM
Hello Jonah-films,
I'm sorry I don't know exactly what you want. I don't know what kind of game you are making: a platformer, a fps, a airplane game. But for the purposes of this answer I will assume you are making a 3d game where you run around and the enemys chase you because it best demonstrates the best and most common method for enemy ai's that follow the player.
One method is using NavMeshs and NavMeshAgents. This creates a pathfinding system for you to put in your enemy so they can chase you and pathfind around objects. While scripting you would use:
GetComponent().destination = player.transform.position
to get your enemy to move toward you player if you created the NavMesh and NavMeshAgent correctly.
I recommend you watch/read these if you are interested in learning about this:
https://unity3d.com/learn/tutorials/topics/navigation https://docs.unity3d.com/Manual/class-NavMeshAgent.html https://docs.unity3d.com/Manual/nav-AreasAndCosts.html
Another option is to use RigidBodys and AddForce to make them move toward the player. This has a down side though, it cannot pathfind and it will move toward the player and possibly off cliffs or into walls. To make the enemys move you would use:
transform.LookAt(new Vector3(player.transform.x, transform.y, player.transform.z)); GetComponent().AddForce(transform.forward * Time.deltaTime);
If you want to learn about this I recommend you watch/read these: https://docs.unity3d.com/Manual/class-Rigidbody.html https://unity3d.com/learn/tutorials/topics/physics/adding-physics-forces?playlist=17120
Hope it works well, tiggy02.
Answer by ericbegue · Dec 22, 2016 at 09:00 AM
Unity has a built-in navigation system to enable your models to be aware of the environment so that they can decide which path to follow to move from point A to B, by taking into account available paths and obstacles.
See the documentation for more details.
Edit: Sorry, my answer is somewhat a duplication of @tiggy02's.
Your answer
Follow this Question
Related Questions
Using #if UNITY_DEBUG in DLLs 0 Answers
Can't add script to anything. 1 Answer
How to teleport a car? 1 Answer
Storing levels data 1 Answer