예제 #1
0
        public void RotateModelDuringTurn(float progress, Movement.ManeuverDirection direction)
        {
            float turningDirection = 0;

            turningDirection = (direction == Movement.ManeuverDirection.Right) ? 1 : -1;

            if (progress > 0.5f)
            {
                progress = 1 - progress;
            }
            modelCenter.localEulerAngles = new Vector3(0, 0, Mathf.Lerp(0, 45 * turningDirection, progress));
        }
예제 #2
0
    public Movement.MovementStruct ManeuverFromString(string parameters)
    {
        string[] arrParameters = parameters.Split('.');

        Movement.ManeuverSpeed speed = Movement.ManeuverSpeed.Speed1;

        switch (arrParameters[0])
        {
        case "1":
            speed = Movement.ManeuverSpeed.Speed1;
            break;

        case "2":
            speed = Movement.ManeuverSpeed.Speed2;
            break;

        case "3":
            speed = Movement.ManeuverSpeed.Speed3;
            break;

        case "4":
            speed = Movement.ManeuverSpeed.Speed4;
            break;

        case "5":
            speed = Movement.ManeuverSpeed.Speed5;
            break;
        }

        Movement.ManeuverDirection direction = Movement.ManeuverDirection.Forward;

        switch (arrParameters[1])
        {
        case "F":
            direction = Movement.ManeuverDirection.Forward;
            break;

        case "L":
            direction = Movement.ManeuverDirection.Left;
            break;

        case "R":
            direction = Movement.ManeuverDirection.Right;
            break;
        }

        Movement.ManeuverBearing bearing = Movement.ManeuverBearing.Straight;

        switch (arrParameters[2])
        {
        case "S":
            bearing = Movement.ManeuverBearing.Straight;
            break;

        case "R":
            bearing = Movement.ManeuverBearing.KoiogranTurn;
            break;

        case "B":
            bearing = Movement.ManeuverBearing.Bank;
            break;

        case "T":
            bearing = Movement.ManeuverBearing.Turn;
            break;
        }

        Movement.ManeuverColor color = Selection.ThisShip.GetColorComplexityOfManeuver(parameters);

        Movement.MovementStruct result = new Movement.MovementStruct();
        result.Speed           = speed;
        result.Direction       = direction;
        result.Bearing         = bearing;
        result.ColorComplexity = color;

        return(result);
    }