IK.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using UnityEngine;
  2. using System.Collections;
  3. namespace RootMotion.FinalIK {
  4. /// <summary>
  5. /// Base abstract class for %IK solver components.
  6. /// </summary>
  7. public abstract class IK: SolverManager {
  8. #region Main Interface
  9. /// <summary>
  10. /// Gets the %IK component's solver as IKSolver.
  11. /// </summary>
  12. public abstract IKSolver GetIKSolver();
  13. #endregion Main Interface
  14. /*
  15. * Updates the solver. If you need full control of the execution order of your IK solvers, disable this script and call UpdateSolver() instead.
  16. * */
  17. protected override void UpdateSolver() {
  18. if (!GetIKSolver().initiated) InitiateSolver();
  19. if (!GetIKSolver().initiated) return;
  20. GetIKSolver().Update();
  21. }
  22. /*
  23. * Initiates the %IK solver
  24. * */
  25. protected override void InitiateSolver() {
  26. if (GetIKSolver().initiated) return;
  27. GetIKSolver().Initiate(transform);
  28. }
  29. protected override void FixTransforms() {
  30. if (!GetIKSolver().initiated) return;
  31. GetIKSolver().FixTransforms();
  32. }
  33. // Open the User Manual url
  34. protected abstract void OpenUserManual();
  35. // Open the Script Reference url
  36. protected abstract void OpenScriptReference();
  37. }
  38. }