示例#1
0
 // Use this for initialization
 void Start()
 {
     cam = Camera.main;
     transform.position = cam.transform.position - (Vector3)startOffset;
     targetPos          = transform.position;
     targetRotation     = transform.rotation.eulerAngles.z;
     ui = cam.GetComponent <CamUI>();
 }
示例#2
0
    public void CheckClearance()
    {
        if (IKactive)//& legMode == LegMode.Translate)
        {
            //limbMirror.contactPoint.position = limbMirror.servoWrist.transform.TransformPoint(memoryBridge.GetVector3(limbMirror.servoWrist.servoName + "CollisionPoint"));
            // limbIK.contactPoint.position = limbIK.servoWrist.transform.TransformPoint(memoryBridge.GetVector3(limbMirror.servoWrist.servoName + "CollisionPoint"));
        }
        torque             = memoryBridge.GetVector3(limbMirror.servoWrist.servoName + "torque");
        velocity           = torque.magnitude;
        explosionPotential = memoryBridge.GetFloat(limbMirror.servoWrist.servoName + "explosionPotential");
        gExplodeChance     = memoryBridge.GetFloat(limbMirror.servoWrist.servoName + "gExplodeChance");
        footActive         = memoryBridge.GetBool(limbMirror.servoWrist.servoName + "active");
        hasExploded        = memoryBridge.GetBool(limbMirror.servoWrist.servoName + "exploded");

        if (hasExploded)
        {
            CamUI.SetCamText(name + " has exploded");
            Debug.LogError("Exploded Leg : " + name + " Velocity : " + velocity + " Mode : " + limbIK.gaitSequenceMode.ToString() + " Percent : " + CalculateStridePercent());
        }

        rawClearance = memoryBridge.GetFloat(limbMirror.servoWrist.servoName + "KSPFootClearance");
        //if(limbMirror.limbEnd == null)
        //{
        //    Debug.Log("end point null");
        //}
        var contactPointOffSet = limbMirror.servoWrist.transform.position.y - limbMirror.trueLimbEnd.position.y;

        footClearance = rawClearance - contactPointOffSet;
        if (footClearance < .03f)
        {
            footClearance = 0;
        }
        groundContact = memoryBridge.GetBool(limbMirror.servoWrist.servoName + "GroundContact");

        //if (!collisionPoint)
        //{
        //    collisionPoint = new GameObject("CollisionPoint").transform;
        //   // DebugVector.DrawVector(collisionPoint, DebugVector.Direction.all, .5f, .1f, Color.red, Color.white, Color.blue);
        //}
        //collisionPoint.position = limbMirror.servoWrist.transform.TransformPoint(memoryBridge.GetVector3(limbMirror.servoWrist.servoName + "CollisionPoint"));

        // limbMirror.
        //if(limbIK)


        //if (!groundContact)
        // ground.position = limbMirror.servoWrist.transform.position - new Vector3(0, rawClearance, 0);
        var localPoint = limbMirror.limbEnd.localPosition - new Vector3(0, .4f, 0);

        ground.position = limbMirror.servoWrist.transform.TransformPoint(localPoint) - new Vector3(0, rawClearance, 0);
    }