void _SyncDisplacement(FullBodyIK fullBodyIK)
{
// Measure bone length.(Using worldPosition)
// Force execution on 1st time. (Ignore case _settings.syncDisplacement == SyncDisplacement.Disable)
if (_settings.syncDisplacement == SyncDisplacement.Everyframe || !_isSyncDisplacementAtLeastOnce)
{
_isSyncDisplacementAtLeastOnce = true;
if (_headBone != null && _headBone.transformIsAlive)
{
if (_headEffector != null)
{
SAFBIKQuatMultInv0(out _headEffectorToWorldRotation, ref _headEffector._defaultRotation, ref _headBone._defaultRotation);
}
if (_leftEyeBone != null && _leftEyeBone.transformIsAlive)
{
SAFBIKQuatMultInv0(out _headToLeftEyeRotation, ref _headBone._defaultRotation, ref _leftEyeBone._defaultRotation);
}
if (_rightEyeBone != null && _rightEyeBone.transformIsAlive)
{
SAFBIKQuatMultInv0(out _headToRightEyeRotation, ref _headBone._defaultRotation, ref _rightEyeBone._defaultRotation);
}
}
_isEnabledCustomEyes = fullBodyIK._PrepareCustomEyes(ref _headToLeftEyeRotation, ref _headToRightEyeRotation);
}
}