In my 8+ years building mechanics in Unity, building a production-ready third-person character controller from scratch remains one of the trickiest engineering challenges. You constantly balance capsule physics, slope limits, camera collisions, foot IK, and animation blending. The Rigonix Third Person Controller template approaches this problem with a clean state-machine architecture that decouples character motor calculations from input processing and visual presentation.
At its core, the template relies on a custom kinematic velocity calculation model layered over Unity’s CharacterController or Rigidbody system (depending on your setup). The architecture isolates state management into discrete, modular components: input listeners pass normalized vectors to an orbital camera system, which then calculates relative direction vectors for the motor script. Animation parameters, footstep VFX triggers, and surface-aware shaders are updated via light event delegates rather than heavy Update() polling loops. Here is the key takeaway: instead of wrestling with spaghetti code, you get a clearly structured codebase where adding custom states—like wall-running or ledge-grabbing—takes hours rather than days.
The movement core handles complex surface detection using multi-point raycasting and sphere-casting to resolve ground contact accurately. This prevents the classic "jittering" on staircases and uneven terrain. Slope sliding dynamics kick in automatically when surface angles exceed the defined slopeLimit parameter, offering smooth acceleration down steep drops.
Unlike basic controller templates that focus purely on C# movement scripts, Rigonix includes a dedicated suite of environment and character shaders built for both Universal Render Pipeline (URP) and HDRP. The custom Stylized Surface Shader includes features like dynamic rim lighting, distance-based vertex displacement, and surface-impact VFX triggers that sync automatically with footstep events.
OnStateEntered, OnStateExited).InputActionAsset).Honestly, this template shines brightest when paired with games requiring tight spatial navigation and stylized or semi-realistic visuals. Because the camera rig and movement state machine are so tightly integrated, it fits several distinct genres:
Integrating Rigonix into an existing Unity project takes only a few minutes once you understand its component lifecycle. Follow these practical steps to get your character running:
Set up your project layers correctly. Create dedicated layers for Player, Ground, and CameraObstacle. Ensure your Physics Matrix under Project Settings > Physics disables collision between Player and CameraObstacle to prevent weird camera jerks during movement.
Drop the Rigonix_Player_Base prefab into your hierarchy. Assign your custom character mesh beneath the main transform child node. Attach the RigonixMotor component to the root object and assign your ground layer mask.
Here is how you can quickly write a custom listener component to hook into the controller’s state machine and trigger gameplay logic whenever the character enters a sprint state:
using UnityEngine;
using Rigonix.Controller;
public class SprintVFXTrigger : MonoBehaviour
{
[SerializeField] private RigonixMotor playerMotor;
[SerializeField] private ParticleSystem sprintDustParticles;
private void OnEnable()
{
if (playerMotor != null)
{
playerMotor.OnStateChanged += HandleStateChanged;
}
}
private void OnDisable()
{
if (playerMotor != null)
{
playerMotor.OnStateChanged -= HandleStateChanged;
}
}
private void HandleStateChanged(MovementState previousState, MovementState newState)
{
if (newState == MovementState.Sprinting)
{
if (!sprintDustParticles.isPlaying)
sprintDustParticles.Play();
}
else if (previousState == MovementState.Sprinting)
{
sprintDustParticles.Stop();
}
}
}
GetComponent allocations inside Update() cycles; optimized for steady framerates.| Category | Templates / Systems |
|---|---|
| Latest Version | v1.1.0 |
| File Size | 107.08 MB |
| Added to Platform | August 19, 2026 |
| Views | 4 views |
| Downloads | 6 downloads |
| Favourites | 0 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |