Объявление
public void SolveIK();Описание
Выполнить IK-решатель.
Решатель гуманоидной ОК выполняется с использованием положения цели ОК, поворота и веса, которые в настоящее время установлены в AnimationHumanStream.
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Animations;
public struct IKJob : IAnimationJob
{
public TransformSceneHandle effector;
public PropertySceneHandle positionWeight;
public PropertySceneHandle rotationWeight;
public void ProcessRootMotion(AnimationStream stream) {}
public void ProcessAnimation(AnimationStream stream)
{
AnimationHumanStream humanStream = stream.AsHuman();
if (effector.IsValid(stream) && positionWeight.IsValid(stream) && rotationWeight.IsValid(stream))
{
humanStream.SetGoalPosition(AvatarIKGoal.LeftFoot, effector.GetPosition(stream));
humanStream.SetGoalRotation(AvatarIKGoal.LeftFoot, effector.GetRotation(stream));
humanStream.SetGoalWeightPosition(AvatarIKGoal.LeftFoot, positionWeight.GetFloat(stream));
humanStream.SetGoalWeightRotation(AvatarIKGoal.LeftFoot, rotationWeight.GetFloat(stream));
}
humanStream.SolveIK();
}
}