ScriptableObject-based Enemy Types | AI Series Part 5
Published: 09 Mar 2021
In this tutorial, I go over how to create new NavMeshAgent Enemy types, and how to configure those with a ScriptableObject. This is the introductory video for this concept that we will build on in the next videos. We set up the NavMeshAgent's values from the ScriptableObject which allows us to dynamically modify the values at runtime without impacting base stats. It also sets up the framework for adding additional configurations all in a single place.
ScriptableObjects give us the power to create CONFIGURATION-DRIVEN enemies, instead of requiring a prefab that's configured with all of the values the enemy needs to know about. This allows us to both:
⚫ Externalize the configuration of our enemies
⚫ Scale up enemies over time based on the base values
As usual with the AI Series, we're using the NavMesh Components: https://docs.unity3d.com/Manual/NavMesh-BuildingComponents.html not the built-in navigation system.
🔶 ALL THINGS LlamAcademy now available at: https://llamacademy.dev/support including latest tutorials, courses, ways to support, and more! Check it out 🙂
👨💻 Get the FULL FREE PROJECT on GitHub: https://github.com/llamacademy/ai-series-part-5
🏷️Save 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: https://www.jetbrains.com/store/?section=personal&billing=yearly
Some links may be affiliate links, which at no additional cost to you, gives me a small portion of the purchase.
Chapters
00:00 Intro
01:10 EnemyScriptableObject
04:01 Power of ScriptableObjects
04:37 Creating First EnemyScriptableObject
05:04 Creating a New Enemy Type
06:52 Demo