// This function ensures that the avatar is on the ground. It will adjust the tracking root vertically private void FootOnGroundCheck(FootTarget footTarget) { if (footSensor.rotationConfidence <= 0.1F) { return; } HipsTarget hipsTarget = footTarget.humanoid.hipsTarget; float upperLegAngle = Quaternion.Angle(hipsTarget.hips.target.transform.rotation, footTarget.upperLeg.target.transform.rotation); float lowerLegAngle = Quaternion.Angle(footTarget.upperLeg.target.transform.rotation, footTarget.lowerLeg.target.transform.rotation); float angle = upperLegAngle + lowerLegAngle; if (angle < 20) // stretched leg { float footY = footTarget.foot.target.transform.position.y - footTarget.soleThicknessFoot; float diff = footY - hipsTarget.humanoid.transform.position.y; neuronTracker.trackerTransform.Translate(0, -diff, 0); } }
public FootTargetProps(SerializedObject serializedObject, FootTarget footTarget) : base(serializedObject, footTarget.astra, footTarget, "astra") { }
public FootTargetProps(SerializedObject serializedObject, FootTarget footTarget) : base(serializedObject, footTarget.neuron, footTarget, "neuron") { }
public FootTargetProps(SerializedObject serializedObject, FootTarget footTarget) : base(serializedObject, footTarget.kinect1, footTarget, "kinect1") { }