Third Person Point & Click

The Point & Click Movement Type turns a pointer click on solid world geometry into a destination, then lets Move Towards and a Pathfinding Movement ability guide the character there. Use it for click-to-move RPG, strategy, or top-down controls rather than direct keyboard or stick locomotion.

The Top Down View Type is the released Version 3 recommended camera pairing. Other camera framing can work, but the camera must still be attached as the character’s look source because Point & Click casts the destination ray from that camera.

Before you begin

  • Bake a NavMesh that covers the character’s starting point and every intended destination.
  • Create a third-person character with player input, a Camera Controller, and Ultimate Character Locomotion.
  • Keep the active cursor available for screen pointing. The supplied Unity Input and Unity Input System components default Disable Cursor to enabled, so turn it off for this workflow.
  • Decide whether movement and item use share a pointer button. Both Point & Click and the built-in Use item ability default to Fire1; give one of them a separate mapping when one click should not do both.

Build the point-and-click character

  1. Open Tools > Opsive > Ultimate Character Controller > Character Manager.
  2. Choose Third from Perspective and choose Point Click from Third Person Movement.
  3. Enable Standard Abilities so the character receives Move Towards, or plan to add Move Towards manually.
  4. Enable NavMeshAgent. This adds NavMeshAgent Movement and its required NavMeshAgent component.
  5. Complete the remaining model, Animator, input, and item choices, then select Build Character. Use Update Character for an existing character.
  6. Configure the Camera Controller with the Top Down View Type and attach it to the character.
  7. On the active player-input component, disable Disable Cursor. Confirm that the mapping used by Click Button Name exists and reports the intended pointer button.

For a character assembled outside the manager, add Point Click under Movement Types, make it Active, and set Third Person Movement Type to it. Under Abilities, add Move Towards and a concrete PathfindingMovement ability such as NavMeshAgent Movement.

Order the abilities

Ability order controls which system writes the final movement input. Use this order from top to bottom:

  1. Speed Change, when used.
  2. NavMeshAgent Movement or another Pathfinding Movement ability.
  3. Move Towards.
  4. Lower-priority locomotion abilities that should wait during automatic travel.

Pathfinding must be above Move Towards so Move Towards can hand it the destination. In the released Version 3 implementation, Pathfinding Movement already applies an active Speed Change multiplier; keep Speed Change above pathfinding so that multiplier is not applied again after pathfinding writes its input.

Move Towards is concurrent but defaults to blocking positional and rotational player input while active. It also blocks lower-priority locomotion abilities and stored-input abilities. Item Equip Verifier and Equip Unequip are explicitly allowed, while item abilities use their own list; test item use separately, especially when it shares Fire1 with the movement click.

Configure the important settings

Point Click Movement Type

Setting Released Version 3 default Use it for
Click Button Name Fire1 The button checked every frame while held. Use a dedicated mapping when Fire1 also uses an equipped item.
Min Point Click Distance 1 Ignore hits whose straight-line world distance from the character is less than this value. This is not NavMesh path distance.
Run Max Squared Distance 140 The field remains visible and serialized, but released Version 3 does not read it at runtime. It does not automatically start running.

Point & Click ignores a click while the pointer is over UI. Otherwise, it raycasts from the attached camera through the pointer position, ignores trigger colliders, and accepts the first hit on Character Layer Manager > Solid Object Layers. Holding the button updates the destination every frame, which supports drag-to-retarget behavior but can also make a held attack button continually replace the path.

  • Auto Enable defaults to enabled, allowing a destination request to activate the ability and NavMeshAgent.
  • Rotation Override defaults to No Override. Use NavMesh to force facing along the path, or Character when another system should preserve character rotation.
  • Arrived Distance defaults to 0.2. Increase it when the agent oscillates near the target; reduce it only when the character and baked path can reliably reach the tighter tolerance.
  • Allow Movement In Air defaults to enabled. Disable it when airborne abilities should own movement and rotation.

The NavMeshAgent calculates the path, but Ultimate Character Locomotion moves the character and resolves collision. Changing NavMeshAgent speed alone does not change visible root-motion speed.

Move Towards

  • Input Multiplier defaults to 1 and scales direct approach input when pathfinding is not active.
  • Inactive Timeout defaults to 1 second.
  • Teleport On Early Stop defaults to enabled. For visible click-to-move navigation, consider disabling it so a blocked or invalid destination stops instead of snapping the character to the clicked point.
  • Disable Gameplay Input defaults to disabled. Enable it when all other gameplay input, not just positional and rotational movement, should be suspended during travel.

Point & Click supplies a position-only Move Towards request. The generated destination accepts any final rotation, so pathfinding controls facing while traveling and no particular facing is required after arrival.

How a click runs

  1. Point & Click checks Click Button Name and ignores the frame when the pointer is over UI.
  2. The camera casts a ray through the current pointer position against Solid Object Layers. Trigger colliders are ignored.
  3. A hit at least Min Point Click Distance from the character is passed to MoveTowardsLocation.
  4. Move Towards starts and asks the higher-priority Pathfinding Movement ability to set the destination.
  5. NavMeshAgent Movement converts the path’s desired velocity and rotation into Ultimate Character Locomotion input. Character Locomotion applies animation, root motion, acceleration, gravity, collision, and other active abilities.
  6. At Arrived Distance, pathfinding reports arrival. Move Towards completes its position check, releases independent look control, and stops its active pathfinding ability.

The built-in click does not project the hit onto the NavMesh or confirm that a complete path exists. If the pathfinding ability rejects the destination, Move Towards can fall back to direct movement toward the hit. A blocked character can then reach Inactive Timeout and, with Teleport On Early Stop enabled, teleport to the target. Keep clickable geometry aligned with the baked NavMesh, disable the teleport fallback for player-visible navigation, or validate destinations in a project-specific click handler before starting Move Towards.

Scenario choices

  • Movement-only pointer: keep Fire1 when the character has no conflicting item or UI action.
  • Move and attack with the pointer: give Click Button Name a dedicated mapping, or route the click through game logic that decides whether the pointer selected an enemy, an interactable, or the ground.
  • Click and hold to steer: keep the built-in held-button behavior and ensure frequent destination replacement is acceptable to the pathfinding implementation.
  • Click once to travel: use an input mapping that produces the intended short press and avoid holding it while using another action.
  • Walking and running: add Speed Change above NavMeshAgent Movement and select matching walk/run animations. Run Max Squared Distance cannot choose the speed in released Version 3.
  • Root-motion travel: use locomotion animations whose embedded displacement matches the intended path input. The NavMeshAgent supplies direction, not final Transform movement.
  • Fixed facing: choose Character for Rotation Override and let an aiming or facing system own rotation. Use NavMesh when the character should follow path turns.

Editor checkpoint

Before Play Mode, confirm that:

  • Point Click is the active third-person Movement Type;
  • the Camera Controller is attached and uses Top Down or another deliberate third-person View Type;
  • the cursor is visible and unlocked, and Click Button Name resolves to the intended input;
  • the abilities are ordered Speed Change, NavMeshAgent Movement, Move Towards when all three exist;
  • the character starts on the baked NavMesh and the destination floor is in Solid Object Layers; and
  • Teleport On Early Stop matches the desired failure behavior.

Verify in Play Mode

  1. Click a reachable floor point farther than 1 world unit away. Confirm Move Towards and NavMeshAgent Movement become active, a path appears, and the character travels around obstacles.
  2. Click inside Min Point Click Distance. The current destination should not be replaced.
  3. Click over a UI control and on a trigger-only collider. Neither should create a destination.
  4. Hold the click while moving the pointer across valid floor. Confirm the destination updates continuously and decide whether that matches the game design.
  5. Test No Override, NavMesh, and Character rotation behavior used by the game. Confirm facing follows the chosen owner during turns and remains acceptable at arrival.
  6. With items equipped, verify that the movement click does not also fire or use an item unless that shared action is intentional.
  7. Activate Speed Change with it above NavMeshAgent Movement. Confirm the movement input is scaled once and the matching walk or run animation plays.
  8. Test with root motion enabled. The character should follow the path without the NavMeshAgent moving the Transform independently or the animation visibly sliding.
  9. Disable Teleport On Early Stop, then click solid geometry outside the baked NavMesh or behind an unreachable obstruction. Confirm the character stops safely instead of snapping to the hit.

Troubleshooting

Symptom Check Fix
The Console reports a missing Pathfinding Movement or Move Towards ability. Point & Click requires both abilities before Movement Types initialize. Add a concrete Pathfinding Movement ability and Move Towards, then keep pathfinding above Move Towards.
Clicking throws an error or creates no ray. The character may have no player input, no camera look source, or no Camera component on that look source. Build the character with player input and attach the Camera Controller before testing Point & Click.
Clicking does nothing. The pointer may be over UI, the mapping may not exist, the cursor may be locked, the hit may be too close, or the floor may not be in Solid Object Layers. Verify Click Button Name, disable Disable Cursor, test away from UI, and inspect the floor layer and distance.
A path is not created. The character or destination is off the NavMesh, Auto Enable is off while the ability is disabled, or the destination is unreachable. Place both endpoints on a baked NavMesh, enable Auto Enable, and test the destination through NavMeshAgent Movement.
The character moves directly into an obstacle instead of following a path. Pathfinding rejected the click, so Move Towards fell back to direct input. Align clickable surfaces with the NavMesh or validate the hit before starting movement. Disable Teleport On Early Stop while diagnosing.
The character teleports after becoming stuck. Move Towards reached its default 1-second Inactive Timeout with Teleport On Early Stop enabled. Correct the path or animation, increase the timeout only when a real pause is expected, or disable the teleport fallback.
The click also fires or uses an item. Point & Click and Use both default to Fire1. Assign a dedicated movement mapping or resolve move-versus-use intent in project input logic.
The character does not run on distant clicks. Run Max Squared Distance has no runtime use in released Version 3. Use Speed Change, an Animator/state decision, or project logic to choose walking and running.
Speed is multiplied twice. Speed Change is below NavMeshAgent Movement, so it processes input that pathfinding already scaled. Move Speed Change above NavMeshAgent Movement.
A root-motion character follows the path too slowly or slides. The animation’s embedded speed does not match the path input and movement thresholds. Use matching walk/run clips and blend-tree thresholds; do not tune only NavMeshAgent speed.
The character faces the wrong direction. Rotation Override, NavMeshAgent updateRotation, or another aiming ability owns facing. Choose NavMesh for path facing or Character for external facing, then retest items and arrival.

Developer reference

Point & Click checks IPlayerInput.GetButton every frame and calls UltimateCharacterLocomotion.MoveTowardsAbility.MoveTowardsLocation(hit.point) after a valid raycast. Its public settings are ClickButtonName, MinPointClickDistance, and RunMaxSquaredDistance; the last property remains unused by the released Version 3 runtime.

For projects that need NavMesh projection, complete-path validation, target selection, or separate move/attack intent, handle the pointer in project code and call MoveTowardsLocation only after accepting a safe destination. The position-only overload accepts any final rotation; use the position-and-rotation overload when arrival facing matters.