void _SyncDisplacement_UpdateArgs() { if( _limbIKType == LimbIKType.Leg ) { float effectorMinLengthRate = _settings.limbIK.legEffectorMinLengthRate; _effectorMinLength._Reset( _beginToEndMaxLength, effectorMinLengthRate ); // Memo: Their CachedDegreesToCosSin aren't required caching. (Use instantly.) CachedDegreesToCosSin kneeUpperLimitTheta = new CachedDegreesToCosSin( _settings.limbIK.prefixKneeUpperLimitAngle ); CachedDegreesToCosSin legUpperLimitTheta = new CachedDegreesToCosSin( _settings.limbIK.prefixLegUpperLimitAngle ); _leg_upperLimitNearCircleZ = _beginToBendingLength * legUpperLimitTheta.cos + _bendingToEndLength * kneeUpperLimitTheta.cos; _leg_upperLimitNearCircleY = _beginToBendingLength * legUpperLimitTheta.sin + _bendingToEndLength * kneeUpperLimitTheta.sin; } float effectorMaxLengthRate = (_limbIKType == LimbIKType.Leg) ? _settings.limbIK.legEffectorMaxLengthRate : _settings.limbIK.armEffectorMaxLengthRate; _effectorMaxLength._Reset( _beginToEndMaxLength, effectorMaxLengthRate ); }
void _UpdateArgs() { if( _limbIKType == LimbIKType.Leg ) { float effectorMinLengthRate = _settings.limbIK.legEffectorMinLengthRate; if( _effectorMinLength._b != effectorMinLengthRate ) { _effectorMinLength._Reset( _beginToEndMaxLength, effectorMinLengthRate ); } if( _cache_kneeUpperLimitAngle != _settings.limbIK.prefixKneeUpperLimitAngle || _cache_legUpperLimitAngle != _settings.limbIK.prefixLegUpperLimitAngle ) { _cache_kneeUpperLimitAngle = _settings.limbIK.prefixKneeUpperLimitAngle; _cache_legUpperLimitAngle = _settings.limbIK.prefixLegUpperLimitAngle; // Memo: Their CachedDegreesToCosSin aren't required caching. (Use instantly.) CachedDegreesToCosSin kneeUpperLimitTheta = new CachedDegreesToCosSin( _settings.limbIK.prefixKneeUpperLimitAngle ); CachedDegreesToCosSin legUpperLimitTheta = new CachedDegreesToCosSin( _settings.limbIK.prefixLegUpperLimitAngle ); _leg_upperLimitNearCircleZ = _beginToBendingLength * legUpperLimitTheta.cos + _bendingToEndLength * kneeUpperLimitTheta.cos; _leg_upperLimitNearCircleY = _beginToBendingLength * legUpperLimitTheta.sin + _bendingToEndLength * kneeUpperLimitTheta.sin; } } if( _limbIKType == LimbIKType.Arm ) { float beginRate = _settings.limbIK.armBasisForcefixEffectorLengthRate - _settings.limbIK.armBasisForcefixEffectorLengthLerpRate; float endRate = _settings.limbIK.armBasisForcefixEffectorLengthRate; if( _arm_elbowBasisForcefixEffectorLengthBegin._b != beginRate ) { _arm_elbowBasisForcefixEffectorLengthBegin._Reset( _beginToEndMaxLength, beginRate ); } if( _arm_elbowBasisForcefixEffectorLengthEnd._b != endRate ) { _arm_elbowBasisForcefixEffectorLengthEnd._Reset( _beginToEndMaxLength, endRate ); } } float effectorMaxLengthRate = (_limbIKType == LimbIKType.Leg) ? _settings.limbIK.legEffectorMaxLengthRate : _settings.limbIK.armEffectorMaxLengthRate; if( _effectorMaxLength._b != effectorMaxLengthRate ) { _effectorMaxLength._Reset( _beginToEndMaxLength, effectorMaxLengthRate ); } }