AirControl  1.3.0
Open Source, Modular, and Extensible Flight Simulator For Deep Learning Research
AC_Airplane_FlapLever.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_FlapLever : MonoBehaviour, IAirplaneUI
11  {
12  #region Variables
13  [Header("Flap 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 
27  #region Interface Methods
28  public void HandleAirplaneUI()
32  {
33  if(input && parentRect && handleRect)
34  {
35  float height = parentRect.rect.height;
36  Vector2 wantedHandlePosition = new Vector2(0f, -height * input.NormalizedFlaps);
37  handleRect.anchoredPosition = Vector2.Lerp(handleRect.anchoredPosition, wantedHandlePosition, Time.deltaTime * handleSpeed);
38  }
39  }
40  #endregion
41  }
42 }
AirControl.IAirplaneUI
Definition: IAirplaneUI.cs:8
AirControl.AC_Airplane_FlapLever.HandleAirplaneUI
void HandleAirplaneUI()
Updates to UI
Definition: AC_Airplane_FlapLever.cs:31
AirControl.AC_BaseAirplane_Input
Base class to listen for keyboard Inputs
Definition: AC_BaseAirplane_Input.cs:12
AirControl.AC_Airplane_FlapLever
Monitor and updates the flap position to UI
Definition: AC_Airplane_FlapLever.cs:10
AirControl
Definition: AirplaneSelector.cs:8
Commons
Definition: AirplaneProperties.cs:14