Beispiel #1
0
    public void TestAutopilotHeadingAbove360()
    {
        AutopilotModel ap = new AutopilotModel();

        ap.setTargetHeading(400f);
        Assert.AreEqual(40f, ap.getTargetHeading());
    }
Beispiel #2
0
    public void TestAutopilotHeadingLessThanZero()
    {
        AutopilotModel ap = new AutopilotModel();

        ap.setTargetHeading(-10f);
        Assert.AreEqual(350f, ap.getTargetHeading());
    }
Beispiel #3
0
    private float GetDistanceAndSetDirection(float currentHeading)
    {
        float leftDistance = 0, rightDistance = 0;

        if (currentHeading > autopilot.getTargetHeading())
        {
            leftDistance  = currentHeading - autopilot.getTargetHeading();
            rightDistance = autopilot.getTargetHeading() - (currentHeading - 360f);
        }
        else
        {
            rightDistance = autopilot.getTargetHeading() - currentHeading;
            leftDistance  = (currentHeading + 360f) - autopilot.getTargetHeading();
        }
        turnRight = rightDistance < leftDistance;
        return(Mathf.Min(leftDistance, rightDistance));
    }