void _Bones_SyncDisplacement()
{
// Sync Displacement.
if( settings.syncDisplacement != SyncDisplacement.Disable ) {
if( settings.syncDisplacement == SyncDisplacement.Everyframe || !_isSyncDisplacementAtLeastOnce ) {
_isSyncDisplacementAtLeastOnce = true;
if( _bones != null ) {
int boneLength = _bones.Length;
for( int i = 0; i != boneLength; ++i ) {
if( _bones[i] != null ) {
_bones[i].SyncDisplacement();
}
}
// for Hips
boneCaches._SyncDisplacement( this );
for( int i = 0; i != boneLength; ++i ) {
if( _bones[i] != null ) {
_bones[i].PostSyncDisplacement( this );
}
}
for( int i = 0; i != boneLength; ++i ) {
if( _bones[i] != null ) {
_bones[i].PostPrepare();
}
}
}
// Forceupdate _defaultPosition / _defaultRotation
if( _effectors != null ) {
int effectorLength = _effectors.Length;
for( int i = 0; i != effectorLength; ++i ) {
if( _effectors[i] != null ) {
_effectors[i]._ComputeDefaultTransform( this );
}
}
}
}
}
}