// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2024 Kybernetik // #if UNITY_PHYSICS_3D using UnityEngine; namespace Animancer { /// /// A component which takes the root motion from an and applies it to a /// . /// /// /// /// Documentation: /// /// Redirecting Root Motion /// /// /// https://kybernetik.com.au/animancer/api/Animancer/RedirectRootMotionToCharacterController /// [AddComponentMenu("Animancer/Redirect Root Motion To Character Controller")] [HelpURL("https://kybernetik.com.au/animancer/api/Animancer/" + nameof(RedirectRootMotionToCharacterController))] public class RedirectRootMotionToCharacterController : RedirectRootMotion { /************************************************************************************************************************/ /// public override Vector3 Position { get => Target.transform.position; set => Target.Move(value - Position); } /// public override Quaternion Rotation { get => Target.transform.rotation; set => Target.transform.rotation = value; } /// protected override void OnAnimatorMove() { if (!ApplyRootMotion) return; Target.Move(Animator.deltaPosition); Target.transform.rotation *= Animator.deltaRotation; } /************************************************************************************************************************/ } } #endif