47 lines
972 B
C#
47 lines
972 B
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace FIMSpace.FTools
|
|
{
|
|
[Serializable]
|
|
public abstract class FIK_IKBoneBase
|
|
{
|
|
public float sqrMagn = 0.1f;
|
|
|
|
public float BoneLength = 0.1f;
|
|
|
|
public float MotionWeight = 1f;
|
|
|
|
public Vector3 InitialLocalPosition;
|
|
|
|
public Quaternion InitialLocalRotation;
|
|
|
|
public Quaternion LastKeyLocalRotation;
|
|
|
|
public FIK_IKBoneBase Child { get; private set; }
|
|
|
|
public Transform transform { get; protected set; }
|
|
|
|
public FIK_IKBoneBase(Transform t)
|
|
{
|
|
transform = t;
|
|
if ((bool)transform)
|
|
{
|
|
InitialLocalPosition = transform.localPosition;
|
|
InitialLocalRotation = transform.localRotation;
|
|
LastKeyLocalRotation = t.localRotation;
|
|
}
|
|
}
|
|
|
|
public virtual void SetChild(FIK_IKBoneBase child)
|
|
{
|
|
if (child != null)
|
|
{
|
|
Child = child;
|
|
sqrMagn = (child.transform.position - transform.position).sqrMagnitude;
|
|
BoneLength = (child.transform.position - transform.position).sqrMagnitude;
|
|
}
|
|
}
|
|
}
|
|
}
|