Version 2.3 of the Ultimate Character Controller is making its way to the Opsive Store and the Asset Store.

Note: The Unity Package Manager doesn’t always import the most recent update after you download the asset. Ensure you are getting the latest by removing the package cache from the Asset Store download folder.

Required Changes

  • Version 2.3 moved the input and state system files into the shared folder in order to allow shared access with the Ultimate Inventory System. As a result the entire Opsive/UltimateCharacterController and Opsive/Shared directories should be removed before version 2.3 is installed. Ensure you have first moved your own assets out of that folder and have a backup.

  • Unity 2019.4 is now the minimum supported Unity version.
  • The following are changes to the API:
    • Objects within Opsive.UltimateCharacterController.Input moved to Opsive.Shared.Input.
    • StateManager moved from Opsive.UltimateCharacterController.StateSystem moved to Opsive.Shared.StateSystem.
    • ILookSource.LookDirection now takes a fifth parameter specifying if the crosshairs spread should be taken into account.
    • Moved Opsive.UltimateCharacterController.UnityEngineUtility.FindCamera to Opsive.Shared.Camera.CameraUtility.FindCamera.
    • Moved Opsive.UltimateCharacterController.Inspectors.Utility.InspectorUtility.RecordUndoDirtyObject to Opsive.Shared.Utility.EditorUtility.RecordUndoDirtyObject.
    • Moved Opsive.UltimateCharacterController.Inspectors.Utility.InspectorUtility.SetDirty to Opsive.Shared.Editor.Utility.EditorUtility.SetDirty.
    • Moved Opsive.UltimateCharacterController.Inspectors.Utility.InspectorUtility.SplitCamelCase to Opsive.Shared.Editor.Utility.EditorUtility.SplitCamelCase.
    • Moved Opsive.UltimateCharacterController.UnityEngineUtility.GetType to Opsive.Shared.TypeUtility.GetType.
    • Replaced TypeUtility.HasAttribute with TypeUtility.GetType.

Change List

  • Set the base version to Unity 2019.4.
  • Moved input classes to shared directory.
  • Moved state system classes to shared directory.
  • Added the Point & Click Movement Type.
  • Added the Look At ability.
  • Added the option of adding a movement spread to the crosshairs.
  • Added a mirror to the demo scene.
  • Added Update Character Rotation toggle to the Third Person View Types.
  • Updated demo scene to use SubCharacter colliders instead of Character collider for hit detection.
  • Renamed ThirdPerson.AlignToGroundRotationSpeed to ThirdPerson.AlignToGravityRotationSpeed.
  • Fixed magic start/end effect audio clip from not modifying the correct object.
  • Fixed box position spawn point from not using the random position.
  • Fixed MagicParticle from not detecting the character colliders.
  • MagicItem.MaxCollisionCount can be set at runtime.
  • CastAction.SpawnProjectile will use the character’s rotation instead of the origin location when determining the spawn rotation.
  • Fixed crosshairs direction from not working with non ScreenSpace – Overlay canvas.
  • Fixed Explosion from generating ObjectPool error if it was destroyed before the scheduled event.
  • Fixed arms from not correctly pressing first person interact button.
  • Added NavMeshMovement.RotationOverride.
  • Fixed DecalManager scaling the decals incorrectly over time.
  • Improved footstep detection for remote clients.
  • Added IUsableItem.SetConsumableItem.
  • Added the OnCharacterDestroyed event.
  • Fixed jump from bouncing if the recurrence delay is set to 0 with a continuous start type.
  • Reworked how the AttributeModifier functions.
  • Fixed first and third person UltimateCharacterControllerDemo scene from not getting all of the presets.
  • Updated the following integrations:
    • A* Pathfinding Project
    • Behavior Designer
    • Cinemachine
    • Control Freak
    • Dialogue System for Unity
    • Easy Touch
    • Final IK
    • InControl
    • Input System
    • Love/Hate
    • Playmaker
    • Quest Machine
    • Rewired
    • Ultimate Inventory System
    • UMA