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:
parent
ddb76e71de
commit
c852dc4a1e
@ -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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user