Configurable AAA-quality movement, camera, and multiplayer networking, ready to use out of the box
The U3D Universal Character Controller
A configurable AAA-quality character controller with walking, running, jumping, crouching, flying, teleportation, first- and third-person camera, gamepad support, and full multiplayer sync built in. All 25+ features are exposed in the Unity Inspector and work with networking turned on by default.
🎯 Where to find it
The player controller prefab lives at Assets → U3D → Prefabs → U3D_PlayerController. Only modify the U3D Player Controller component in the Inspector — other components on the prefab handle networking and animation and shouldn't be changed.
🎬 See it running
The template ships with an interactive demo scene at Assets → U3D → U3D_Demo and online at Spacedolphin's U3D Gym. Press Play and try every controller feature — walk, run, jump, fly, teleport, crouch, zoom, switch perspective — alongside the Project Tools interactivity and Quest System integrations. The fastest way to see what's available and how it feels before customizing your own scene.
Core Capabilities
What the controller handles for you
A quick map of what's built in. Click any title to jump to the detailed section.
Walk, run, jump, crouch, zoom, sprint, auto-run, both-button forward, and configurable gravity. Multi-jump supports double, triple, or any number of mid-air jumps at different heights.
⚡ Includes:
Separate walk and run speeds, tunable gravity, crouch with automatic collider adjustment, and sprint and auto-run toggles for long sessions.
First-person, third-person, and smooth-scroll switching. AAA third-person camera orbits the character with collision-aware positioning so it stays usable in tight spaces.
⚡ Includes:
Always-on free look, left-click orbit and right-click rotate, FOV zoom, smooth perspective transitions, and eye-level pivot behavior.
Flight mode with full 6-degree-of-freedom control, teleportation to where the player is looking, and world interaction states for riding, climbing, and swimming.
⚡ Includes:
Toggle flight, line-of-sight teleport with collision respect, rideable mounting with auto-dismount, climbing physics, and swimming with buoyancy.
Built on Unity's new Input System with keyboard, mouse, and gamepad support. Every action key is remappable. Mouse sensitivity is calibrated per platform.
⚡ Includes:
Custom key bindings, separate WebGL and mobile sensitivity multipliers, optional mouse smoothing, and toggle-based sprint and auto-run.
Browser-based VR built in. Visitors on a WebXR headset like Meta Quest enter your experience directly from a URL — no app store, no sideloading, no separate build.
⚡ Includes:
Automatic VR mode switch, networked hand visuals, snap turning, and cross-platform multiplayer so desktop and VR visitors share the same session.
Movement Features
Configurable movement, grouped by category
Every setting is exposed in the Inspector. Defaults are tuned to feel good out of the box — change only what your project needs.
🚶
Walk & Run Speeds
Separate walk and run speeds, adjustable in the Inspector. Defaults suit general-purpose exploration; raise or lower to match your pacing.
⬆️
Multi-Jump System
Configurable base jump height plus an array for optional double or triple jumps at different heights. Leave the array empty for a single-jump feel.
🌍
Gravity Control
Set gravity per project. Use the default for Earth-like movement, reduce for low-gravity environments, or push higher for weighty jumps.
🔄
Crouch Toggle
Toggle crouch with automatic height adjustment. Useful for stealth gameplay, fitting through low spaces, or reading floor-level details.
🔎
Zoom
Hold to zoom the camera in for closer inspection. Useful for detail work, examining objects, and distant views.
✈️
Flight Mode
Press F to toggle full 6-degree-of-freedom flight. Gravity turns off while flying, and jump and crouch become vertical ascent and descent. Useful for creative tours, level review, large open worlds, and accessibility for players who can't navigate terrain easily.
🚀
Teleportation
Teleport to where the player is looking. Works at a distance and respects collision, so players land on solid ground. Good for large worlds and as an accessibility alternative to long traversal.
🏃
Sprint & Auto-Run Toggles
Sprint toggle and Num Lock auto-run let players cross long distances without holding a key down. Both are remappable and can be disabled per project.
🎯
Both-Button Mouse Move
Hold both mouse buttons to move forward while steering with the mouse. Classic MMO and exploration-style control for players who prefer it over WASD.
⌨️
Custom Key Bindings
Every action key is remappable in the Inspector. Change defaults per project or per audience without editing any code.
📏
Movement Toggles
Num Lock toggles auto-run, and sprint can be a toggle instead of a held key. Both reduce strain during long sessions.
🎮
Unity 6 Input System
Built on Unity's new Input System, with gamepad support included alongside keyboard and mouse.
🖱️
Mouse Sensitivity Calibration
Separate sensitivity multipliers for WebGL, mobile, and user-set preferences, plus optional mouse smoothing. Sensitivity behaves consistently across platforms without per-project tweaking.
Camera System
First-person, third-person, and scroll-to-switch
The camera handles all three perspective modes, orbits around the character in third person, and respects collision so it doesn't clip through walls.
🎮 AAA Camera Control Modes
Always-On Free Look (default): Move the mouse to look around without holding a button. Toggle it off if you'd prefer the older button-to-look style.
Left-click orbit, right-click rotate: Hold left to orbit the camera around the character without turning them. Hold right to rotate the character with the camera.
Both-button forward movement: Hold both mouse buttons to move forward while steering with mouse look. Classic MMO and exploration-style control.
🆓
Always-On Free Look
Move the mouse to look around instantly, no button required. Toggle off in the Inspector for button-based camera control.
🎬
AAA Camera Pivot
Third-person camera pivots around the character with separate controls for orbiting, rotating, and both-button forward movement.
👁️
Perspective Modes
Choose First Person Only, Third Person Only, or Smooth Scroll (players switch between them with the mouse wheel during play).
🔍
Mouse Sensitivity
Fine-tuned look responsiveness with optional smoothing. Consistent feel across WebGL, mobile, and desktop.
📏
Third-Person Distance
Set how far the third-person camera sits behind the character, with collision detection that pulls it closer when walls get in the way.
🔎
Zoom System
FOV-based zoom for close inspection. Works in first and third person.
🎬
Smooth Transitions
Switching perspectives eases the camera between positions at eye level. No jump cuts.
🛡️
Collision Detection
The camera keeps itself out of walls and objects, so the view stays usable in tight spaces and around interior geometry.
Advanced Features
🌐
Multiplayer Networking
Photon Fusion 2 integration is built in. Position, rotation, movement state, and teleports sync across clients without any extra setup.
🚀 What's synced:
Position interpolation, rotation, movement state, jump and teleport events, avatar animation state, and camera pitch for remote player orientation.
🎮
Interaction System
A raycast-based interaction system is built into the controller. Any object with a U3D interactable component is detected automatically when the player looks at it.
🔧 Works with:
The full Project Tools suite — Grabbable, Throwable, Kickable, Pushable, Climbable, Rideable, Interact Triggers, and the Quest System. Interactivity tools →
🥽
VR / WebXR Support
Browser-based VR built in. When visitors open your experience on a WebXR-compatible headset like Meta Quest, the controller switches into VR mode automatically — no separate build, no app store, no sideloading.
🎮 What's included:
Networked hand visuals, snap turning, VR-specific movement and pose sync, and cross-platform multiplayer so desktop and VR visitors share the same session. Powered by De-Panther's WebXR Export package.
🧗
World Interaction States
The controller handles riding, climbing, and swimming as first-class movement states. Each one integrates cleanly with the Project Tools so your player doesn't fight the environment.
🌊 Live states:
Make Rideable parents the player smoothly to moving platforms and auto-dismounts on movement or jump. Make Climbable pauses gravity and hands momentum back on release. Swimming physics, buoyancy, and animation are live on the controller — the one-click Swimmable tool is coming next.
🎭
Animated Avatar Support
Drop a rigged humanoid character into the controller hierarchy. An 8-state animation system handles idle, walk, run, jump, crouch, fly, swim, and climb automatically, all networked.
🎨 Avatar sources:
Import from Mixamo, create custom rigs, or use Unity Asset Store assets. The system uses AnimatorOverrideController for WebGL compatibility and handles clip matching and network sync automatically. Avatar animation docs →
⚡
Performance Tuned
Networking is bandwidth-conscious, with configurable update rates and thresholds so remote player movement stays smooth without flooding the network.
📊 Configurable:
Network send rate, position and rotation thresholds, and WebGL-specific cursor management are all exposed in the Inspector.
🎨
Camera Polish
Crouching lowers the camera smoothly. Zoom eases in and out. Perspective switches hold eye-level rotation. Small details that make the controller feel finished.
✨ Included:
Crouch camera offset, smooth FOV transitions, collision-aware camera positioning, and eye-level pivot behavior.
Multiplayer Ready Out of the Box
Fusion 2 networking, built in
The controller is networked from the first second you press Play. You don't have to write any networking code to get multiplayer working.
📡
Network Sync Rate
Send rate and position/rotation thresholds are configurable. Defaults balance responsiveness with bandwidth for typical WebGL sessions.
👥
Player State Sync
Movement state, camera pitch, interaction status, and jump/teleport events are synchronized across all clients automatically.
🏷️
Player Nametags
Remote players get nametags with distance-based fade and optional line-of-sight checks, so labels don't clutter the view.
🌐
WebGL Compatibility
WebGL-specific cursor management and input handling are included, so browser behavior stays consistent with desktop builds.
Easy Customization
🛡️ Protecting Your Networking
Only modify the U3D Player Controller component settings. Other components on the prefab handle networking and animation, and editing them can break multiplayer.
No scripting required
Every feature is exposed through the Inspector. Change values, press Play to test, then iterate until it feels right.
🎛️
Inspector-Based Config
All 25+ features live in organized sections in the Inspector. No scripting knowledge required to tune the feel.
🎯 Workflow:
Edit prefab → adjust values → Play to test → refine → publish. Changes apply to every player in the scene.
⚡
Real-Time Testing
Press Play in the Editor to test changes immediately. No build or deploy needed to iterate on movement feel.
🔄 Iteration:
Edit, Play, test, stop, adjust, repeat. Dial in the feel in minutes.
📋
Organized Categories
Settings are grouped into Basic Movement, Jump Settings, Advanced Movement, Perspective Control, Mouse Look, AAA Camera, and Input Customization. Find what you need without scrolling.
🗂️ Structure:
Expandable Inspector sections keep the component readable.
✨
Tuned Defaults
Defaults are set to feel good across a wide range of experiences. Customize only what your project specifically needs.
🎮 Out of the box:
Drop the prefab into any scene and press Play. Tune from there.