// 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")
 {
 }
Example #3
0
 public FootTargetProps(SerializedObject serializedObject, FootTarget footTarget)
     : base(serializedObject, footTarget.neuron, footTarget, "neuron")
 {
 }
Example #4
0
 public FootTargetProps(SerializedObject serializedObject, FootTarget footTarget)
     : base(serializedObject, footTarget.kinect1, footTarget, "kinect1")
 {
 }