Zombie Escape: A Point & Click 3D Game using Unity's NavMesh

Design a full game using Unity's built-in A* pathfinding solution with C# code for controlling Enemy AI Combat & Patrol

4.50 (4 reviews)
Game Development
Zombie Escape: A Point & Click 3D Game using Unity's NavMesh
18 hours
Jun 2022
last update
regular price

What you will learn

Use Unity's NavMesh system for Player & Enemy Pathfinding

Randomly generate game levels and bake the NavMesh at runtime

Create a simple Finite State Machine in C# for organizing Enemy's AI

Design an entire game from start to finish

Health and Combat Systems, Keys and Doors, Breadcrumbs and much more!


This course is intended to help beginner to intermediate level game developers become more comfortable using Unity's NavMesh system.

  • Point & Click Player Movement that utilizes Unity's NavMesh Agent with automated animations based on velocity.

  • We'll write a simple Finite State Machine using C# that keeps track of enemy behaviors such as Patrol, Idle, Chase, Attack and Standby.

  • We'll write a simple geomorphic-style procedural generator and then at runtime, once a new level has been created, we'll bake Unity's NavMesh Surface, allowing agents to take advantage of A* Pathfinding in a newly generated environment.

  • Learn how to properly configure NavMesh Agents to prevent them from getting stuck or walking through solid objects.

  • Learn how to use NavMesh Obstacles, Modifiers, Areas, Agent Types and more!

  • Write code to instruct enemies to flock around a player while waiting for their turn to attack (rather than having all enemies attacking mindlessly at once)

  • Randomly place enemy Spawn Nests throughout your generated levels with simple rules, such as the distance from player required to activate the spawner, maximum number of enemies to spawn, type of enemies to spawn, hits required to destroy a nest and the reward for eliminating one.

  • We'll use ScriptableObjects to help organize the game's resources for optimizing memory usage. 

  • We'll write a Singleton script that will stay in memory at all times, allowing us to keep track of health, inventory, upgrades and so on while the game advances levels and changes scenes.

We'll follow all of that up by creating Health & Combat systems and making the game fully playable by the end of the course.


Initial Setup

Course Overview
Setup Unity Project
Import From Zip
Demo Scene
Unity Package

NavMesh Agent

Fine-Tuning Our Agent
Click Target Decal
Setup Player Prefab
Setup Enemy Prefab

Enemy State Machine

State Conditions
Enum & Switch Case
Patrol State
Chase Player
Chase Breadcrumbs
Toggle Agent & Obstacle
Enemy Attack Priority
StandBy State
Attack & Stance Animations

Combat & Health Systems

Enemy Combat
Player Combat
Life & Death
Random Death Animations
Blood Puddle Prefab
Blood Particles
Health Feedback
Player's Healthbar
Enemy's Healthbar
Death Screen Overlay
Input Manager

Enemy Spawning

Automate Enemy Creation
Enemy Groups
Spawn Nest Prefabs
Spawn Nest Visuals
Spawn Nest Particles
Spawn Nest Destruction
Quick Fixes

Modular Level Design

Singleton & Depot
Model Prefabs
Manual Level Design
Camera Rig
Upgrade Pickups
Upgrade Cooldowns
Pickups: Keys
Locked Doors
Level Exits
New Area Type (Puddle)
Set Speed by Area Costs
Create Geomorphic Tileset

Random Level Generator

Level Generator
Placing Wall Boundaries
Spawner Script
Populating Lists of Spawn Types
Placing Pickups & Keys
Placing Nests & Exits

NavMesh Surface

Download & Install NavMesh Surface
Building NavMesh Surface
Modifiers for Area Types
Agent Type for Bigger Foes
Multiple Spawn Nests

Sound Effects

Reference Audio with ScriptableObject
AudioSource for Every Character
Reusing AudioSources with PlayOneShot
Animation Event Triggers
Guise (Scriptable Object)

Bringing It All Together

Level Settings (Scriptable Object)
Level Progression
Score Manager
Score Summary
Victory Scene with Rolling Credits
Escape Menu (Retry, Quit, Volume)


July 5, 2022
I have never used the Nav mesh before and I like it. nice instructions to this point and clearly broadcast!

Related Topics

udemy ID
course created date
course indexed date
course submited by