
Create a mouse look script attached to the player, using a camera holder with sensitivity and vertical limits, and update rotation in late update via rigidbody for smooth, locked-cursor control.
Implement head bob based on horizontal velocity, add a grounded raycast check for slope and surface type, and enable jump with a coyote timer.
Implement footstep sounds that play only when grounded, with surface-specific clips (sand, water, wood, metal) and random pitch, while enforcing a step rate and using sphere casts for step climbing.
Create a WeaponManager to control shooting and reload logic. Implement weapon types, damage interfaces, ammo, and effects for melee, pistol, assault, and sniper weapons with raycast, muzzle flash, and zoom.
Learn to implement enemy health in Unity with a C sharp script managing max and current health, a die function, and weapon damage application.
Create an inventory system using a scriptable object item data, with enums for item type (resource, equippable, consumable) and stats type to save, load, and support puzzles.
Extend the inventory UI by creating slots and a slot holder with a grid layout, adding item icons, quantity text, and an equip section with text and icons.
Learn to implement ground item drops and pickup in a Unity fps game by creating an interactable, inspectable weapon drop with a box collider and testing the drop system.
Implement interactable objects to pick up items into the inventory, disable picked objects, and manage a sniper scope with a scope image and an equip camera for scoped aiming.
Create a health controller in Unity to manage max health and current health, with heal and damage methods, updating the health bar and damage indicator and triggering death at zero.
Add a consumable medicine item that restores 30 hp and updates the health UI on use; support inventory handling and item stats such as health, hunger, thirst, and sleep.
Learn to implement door interactions in a Unity and C# FPS game, focusing on door behavior and player interaction mechanics.
Build a keypad UI for a Unity FPS door by modeling a keypad, applying a texture, and wiring a responsive 3x3 number pad with execute, clear, and exit controls.
Learn to implement a Unity C# keypad system that accepts a password, plays type sounds, opens a door when unlocked, and saves keypad state for reuse.
Fix the shooting problem by using a public bool do not attack to skip firing in update when the keypad is open or closed.
Create a new scene, organize a prefab-based setup, and place player, enemy, weapon, keypad, TV, and generator in a test environment; fix colliders, enable inventory UI, and resolve event-system issues.
Improve the fps interaction script in unity by adding safety checks for audio sources, safely destroying objects, and refining inspect states to enable reliable open, close, and inventory interactions.
Implement safety checks for audio playback in Unity to prevent warnings and crashes, and refine object handling by destroying inspectable objects and activating and deactivating doors and batteries.
In this course, you will learn how to build a complete first-person shooter (FPS) game from the ground up using Unity. This course is designed for beginners and intermediate developers who want to gain practical experience by creating real gameplay systems rather than just learning theory.
We start with the fundamentals, including player movement, camera control, pick items, equipment and shooting mechanics. From there, you will gradually move into more advanced topics such as designing an inventory system, creating interactive objects like keypad, doors, note and objects and quests, and implementing enemy AI behavior. Each system is built step by step, so you can clearly understand how everything works and how different parts of the game connect together.
Throughout the course, you will also learn best practices for organizing your code, making your systems modular, and keeping your project clean and scalable. The goal is not only to help you build a working FPS game, but also to give you the skills and confidence to expand it into your own unique project.
By the end of the course, you will have a solid foundation in Unity game development and a complete project that you can continue to improve and customize.