AirControl  1.3.0
Open Source, Modular, and Extensible Flight Simulator For Deep Learning Research
AC_Airplane_Airspeed.cs
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using Communicator;
5 using Commons;
6 
7 namespace AirControl
8 {
12  public class AC_Airplane_Airspeed : MonoBehaviour, IAirplaneUI
13  {
14  #region Variables
15  [Header("Airspeed Indicator Properties")]
16  [SerializeField]
17  private AC_Airplane_Characteristics characteristics;
18  public RectTransform pointer;
19  public float maxIndicatedKnots = 200f;
20  float currentKnots;
21  #endregion
22 
23 
24  public const float mphToKnts = 0.868976f;
25 
26  #region Builtin methods
27  void Start(){
28  characteristics = GameObject.Find(CommonFunctions.ActiveAirplane).GetComponent<AC_Airplane_Characteristics>();
29  }
30  #endregion
31 
32  #region Interface Methods
33  public void HandleAirplaneUI()
37  {
38  if(characteristics && pointer)
39  {
40  currentKnots = characteristics.MPH * mphToKnts;
41  //Debug.Log(currentKnots);
42 
43  float normalizedKnots = Mathf.InverseLerp(0f, maxIndicatedKnots, currentKnots);
44  float wantedRotation = 360f * normalizedKnots;
45  pointer.rotation = Quaternion.Euler(0f, 0f, -wantedRotation);
46  }
47 
48  #region DBArea
49  StaticOutputSchema.CurrentSpeed = currentKnots;
50  //Set value of AGL and MSL to DB
51  // DB_Functions.SetSpeed(connection, currentKnots);
52  #endregion
53  }
54 
59  #endregion
60  }
61 }
AirControl.AC_Airplane_Airspeed
Monitor and updates the Airspeed to UI
Definition: AC_Airplane_Airspeed.cs:12
AirControl.IAirplaneUI
Definition: IAirplaneUI.cs:8
AirControl.AC_Airplane_Airspeed.HandleAirplaneUI
void HandleAirplaneUI()
Updates to UI
Definition: AC_Airplane_Airspeed.cs:36
AirControl
Definition: AirplaneSelector.cs:8
Communicator
Definition: InputHandle.cs:10
Commons
Definition: AirplaneProperties.cs:14
AirControl.AC_Airplane_Characteristics
Main class defines the Airplane Characteristics
Definition: AC_Airplane_Characteristics.cs:11