using UnityEngine; using System.Collections; namespace RootMotion.FinalIK { /// /// Base abstract class for %IK solver components. /// public abstract class IK: SolverManager { #region Main Interface /// /// Gets the %IK component's solver as IKSolver. /// public abstract IKSolver GetIKSolver(); #endregion Main Interface /* * Updates the solver. If you need full control of the execution order of your IK solvers, disable this script and call UpdateSolver() instead. * */ protected override void UpdateSolver() { if (!GetIKSolver().initiated) InitiateSolver(); if (!GetIKSolver().initiated) return; GetIKSolver().Update(); } /* * Initiates the %IK solver * */ protected override void InitiateSolver() { if (GetIKSolver().initiated) return; GetIKSolver().Initiate(transform); } protected override void FixTransforms() { if (!GetIKSolver().initiated) return; GetIKSolver().FixTransforms(); } // Open the User Manual url protected abstract void OpenUserManual(); // Open the Script Reference url protected abstract void OpenScriptReference(); } }