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

Connect on Social Media

Some links may be affiliate links, which at no additional cost to you, gives LlamAcademy a small portion of the purchase.