67 lines
991 B
C#
67 lines
991 B
C#
using UnityEngine;
|
|
|
|
namespace RootMotion.FinalIK
|
|
{
|
|
public abstract class Poser : SolverManager
|
|
{
|
|
public Transform poseRoot;
|
|
|
|
[Range(0f, 1f)]
|
|
public float weight = 1f;
|
|
|
|
[Range(0f, 1f)]
|
|
public float localRotationWeight = 1f;
|
|
|
|
[Range(0f, 1f)]
|
|
public float localPositionWeight;
|
|
|
|
private bool initiated;
|
|
|
|
public abstract void AutoMapping();
|
|
|
|
public virtual void AutoMapping(Transform[] bones)
|
|
{
|
|
}
|
|
|
|
public void UpdateManual()
|
|
{
|
|
UpdatePoser();
|
|
}
|
|
|
|
protected abstract void InitiatePoser();
|
|
|
|
protected abstract void UpdatePoser();
|
|
|
|
protected abstract void FixPoserTransforms();
|
|
|
|
protected override void UpdateSolver()
|
|
{
|
|
if (!initiated)
|
|
{
|
|
InitiateSolver();
|
|
}
|
|
if (initiated)
|
|
{
|
|
UpdatePoser();
|
|
}
|
|
}
|
|
|
|
protected override void InitiateSolver()
|
|
{
|
|
if (!initiated)
|
|
{
|
|
InitiatePoser();
|
|
initiated = true;
|
|
}
|
|
}
|
|
|
|
protected override void FixTransforms()
|
|
{
|
|
if (initiated)
|
|
{
|
|
FixPoserTransforms();
|
|
}
|
|
}
|
|
}
|
|
}
|