Added hidden float reverting setting (hidden, because it is still experimental)

This reverts the effect of the float correction when the avatar has bent knees.
This commit is contained in:
Pascal Serrarens 2023-12-21 11:32:29 +01:00
parent ddb76e71de
commit c852dc4a1e

View File

@ -2140,6 +2140,8 @@ namespace Passer.Humanoid {
/// Correct floating avatars when user is taller than the avatar
/// </summary>
public bool floatCorrection = false;
public bool floatReverting = false;
private float floatCorrectionDistance = 0.0F;
protected void CheckGrounded() {
Vector3 footBase = GetHumanoidPosition();
@ -2179,8 +2181,24 @@ namespace Passer.Humanoid {
if (floatCorrection) {
float leftFootBoneDistance = leftFootTarget.foot.bone.transform.position.y - leftFootTarget.foot.target.transform.position.y;
float rightFootBoneDistance = rightFootTarget.foot.bone.transform.position.y - rightFootTarget.foot.target.transform.position.y;
if (leftFootBoneDistance > 0.02F && rightFootBoneDistance > 0.02F)
AdjustTrackingHeight(-0.01F);
if (leftFootBoneDistance > 0.02F && rightFootBoneDistance > 0.02F) {
float correction = -0.01F;
AdjustTrackingHeight(correction);
floatCorrectionDistance += correction;
Debug.Log($"{floatCorrectionDistance} {leftFootBoneDistance} {rightFootBoneDistance}");
}
}
if (floatReverting && floatCorrectionDistance < 0) {
float leftFootDistance = leftFootTarget.upperLeg.bone.transform.position.y - leftFootTarget.foot.bone.transform.position.y;
float leftBendingDistance = (leftFootTarget.upperLeg.bone.length + leftFootTarget.lowerLeg.bone.length) - leftFootDistance;
float rightFootDistance = rightFootTarget.upperLeg.bone.transform.position.y - rightFootTarget.foot.bone.transform.position.y;
float rightBendingDistance = (rightFootTarget.upperLeg.bone.length + rightFootTarget.lowerLeg.bone.length) - rightFootDistance;
if (leftBendingDistance > 0.02 && rightBendingDistance > 0.02) {
float correction = +0.01F;
AdjustTrackingHeight(correction);
floatCorrectionDistance += correction;
Debug.Log($"{floatCorrectionDistance} {leftBendingDistance} {rightBendingDistance}");
}
}
}