AirControl  1.3.0
Open Source, Modular, and Extensible Flight Simulator For Deep Learning Research
AC_Airplane_PitchLever.cs
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using Commons;
5 namespace AirControl
6 {
10  public class AC_Airplane_PitchLever : MonoBehaviour, IAirplaneUI
11  {
12  #region Variables
13  [Header("Throttle Lever Properties")]
14  [SerializeField]
15  private AC_BaseAirplane_Input input;
16  public RectTransform parentRect;
17  public RectTransform handleRect;
18  private float handleSpeed = 2f;
19  #endregion
20 
21  #region Builtin methods
22  void Start(){
23  input = GameObject.Find(CommonFunctions.ActiveAirplane).GetComponent<AC_BaseAirplane_Input>();
24  }
25  #endregion
26  #region Interface Methods
27  public void HandleAirplaneUI()
31  {
32  if(input && parentRect && handleRect)
33  {
34  float height = parentRect.rect.height;
35  Vector2 wantedHandlePosition = new Vector2(0f, height/2 * input.Pitch);
36  handleRect.anchoredPosition = Vector2.Lerp(handleRect.anchoredPosition, wantedHandlePosition, Time.deltaTime * handleSpeed);
37  }
38  }
39  #endregion
40  }
41 }
AirControl.IAirplaneUI
Definition: IAirplaneUI.cs:8
AirControl.AC_BaseAirplane_Input
Base class to listen for keyboard Inputs
Definition: AC_BaseAirplane_Input.cs:12
AirControl.AC_Airplane_PitchLever
Monitor and updates the Pitch lever to UI
Definition: AC_Airplane_PitchLever.cs:10
AirControl.AC_Airplane_PitchLever.HandleAirplaneUI
void HandleAirplaneUI()
Updates to UI
Definition: AC_Airplane_PitchLever.cs:30
AirControl
Definition: AirplaneSelector.cs:8
Commons
Definition: AirplaneProperties.cs:14