Chris Kurhan's Projects
Get an in-depth overview of the most commonly needed functionality of the Unity Object Pooling API introduced in the 2021 version of the Unity Editor.
Learn how to show animated 3D Models on your UI using a Canvas, Render Texture, and any 3d model
In this tutorial repository you'll learn how you can easily apply smoothing and randomness to smoothing by using Animation Curves or MinMaxCurves to achieve nonlinear interpolation on "lerp"s.
Full project of the end state of the AI Series Part 1 video
Full project of the end state of the AI Series Part 10 video where we implement a flying enemy!
Project for the tutorial on how to implement basic finite state machines for your AI in Unity.
Project for the AI Series Part 12 where I go over how to choose the closest target to a particular NavMeshAgent based on the distance the NavMeshAgent would travel to get to the other target.
Project used in the AI Series Part 13 Unity Tutorial
Project corresponding to AI Series Part 14 where we implement Baking NavMesh at Runtime around the Player, instead of baking on the entire scene
Project used in the AI Series Part 14.5 Unity Tutorial where I show how to approach optimizing code, using our runtime navmesh generation as the optimization target
Project for the AI Series Part 15 tutorial where we spawn NavMeshAgents at runtime on a Procedurally baked NavMesh that is baked only around the player in a large or procedurally generated world.
Project for the AI Series Part 16 tutorial where we link Pre-Baked NavMeshes on additively-loaded scenes. This is a common need when you have non-procedural worlds that are statically created, but you want to have a seamless experience as the player moves from one chapter to another that you've constructed via different scenes
In this tutorial repository I show how to upgrade the AgentLinkMover script provided by Unity in the NavMesh Components repository to allow configuring Agent Move Method per NavMesh Area Type
Project for the AI Series Part 18 tutorial that demonstrates how to burst spawn enemies, leveraging our existing EnemySpawner .
Tutorial repo for AI Series Part 19, where you will learn how to do round-based spawning and scaling up enemies per round.
Full project of the end state of the AI Series Part 2 video where we've add jumping with NavMeshLinks
This tutorial repository is the end state of the AI Series Part 20 - Weighted Random Spawning video where we implement a new spawn method and define these spawn configurations in ScriptableObjects.
Tutorial repository for AI Series Part 21, which is Part 1 of a sub-series to implement enemy skills and abilities. In this repository we have the foundation for how to implement skills via ScriptableObjects and a single ability - a jump attack
Tutorial repository for AI Series Part 22, which is Part 2 of a sub-series to implement enemy skills and abilities. In this repository we have extended the foundation from part 21 and implemented a new channeled ability - fire breath
Tutorial repository for AI Series Part 23, which is Part 3 of a sub-series to implement enemy skills and abilities. In this repository we have extended the foundation from part 21 and 22 and implemented a new instant-cast ability - ice lance
Tutorial repository for AI Series Part 24, which is the 4th and final part of a sub-series to implement enemy skills and abilities. In this repository we have extended the foundation from part 21, 22, and 23 to implement a new instant-cast ability - poison gas
In this tutorial repository, I demonstrate how NavMeshModifiers and NavMeshModifierVolumes work with Cost Modifiers to control NavMeshAgent pathing. I also implement a simple script to slow down NavMeshAgents when they enter a more costly zone.
In this tutorial repository you will learn how to select units with either a click. shift+click (to add/remove), and click+drag to bulk select units utilizing a singleton SelectionManager with automatically registering SelectableUnits that can have their path set with a right click of the mouse.
In this tutorial repository you will learn how to make NavMeshAgents surround a target instead of blindly chasing to the center point of their target at a customizable radius.
In this tutorial repository you will see how you can use moving platforms with the Unity Navigation System.
Learn how to make NavMeshAgents find valid cover spots from another target object.
Full project of the end state of the AI Series Part 3 video where we add basic animations to our NavMeshAgents
In this tutorial repository you will learn how to make NavMeshes with Moving and Rotating Platforms that are traversable by NavMeshAgents. This is officially unsupported and comes with some limitations on how it can work.
learn how to show a path to a specific target without using a NavMeshAgent. We'll calculate the path on a NavMesh from the player's current location (controlled via a Third Person Controller) to the target location, and show that with a LineRenderer. The path calculation has a few knobs to turn, how high above the NavMesh to draw the line and how frequently to recalculate the path.
Learn how NavMeshAgent obstacle avoidance works... in DEPTH! In this deep dive into NavMeshAgent avoidance you'll learn 5 key takeaways for improving NavMeshAgent avoidance using the Unity Navigation System, no external assets needed!