using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class HUDController : MonoBehaviour { public bool chartOn = false; public GameObject sideChannelObj; public Toggle chartOnToggleObj; public Button saveModelButton; public TMP_InputField chartOnTimeOutInputObj; public TMP_InputField enemyNumInputObj; public float chartOnTimeOut = 1; public int enemyNum = 3; public float chartOnTimeOutDefault = 120f; private float chatOntimeStart = 0; private AimBotSideChannelController sideChannelController; private MessageBoxController messageBox; private void Start() { sideChannelController = sideChannelObj.GetComponent(); messageBox = gameObject.GetComponent(); } private void Update() { if (chartOn) { if (Time.time - chatOntimeStart >= chartOnTimeOut) { chartOn = false; chartOnToggleObj.isOn = false; } } } public void OnChartOnToggleChange() { chatOntimeStart = Time.time; chartOn = chartOnToggleObj.isOn; } public void OnEnemyNumTextChange() { try { enemyNum = Math.Abs(int.Parse(enemyNumInputObj.GetComponent().text)); } catch (NullReferenceException) { enemyNum = 3; } } public void OnChartTimeOutTextChange() { try { chartOnTimeOut = Math.Abs(int.Parse(chartOnTimeOutInputObj.GetComponent().text)); } catch (NullReferenceException) { chartOnTimeOut = chartOnTimeOutDefault; } } public void OnSaveModelButtonPressed() { // Send message to python to save model sideChannelController.SendSideChannelMessage("Command", "SaveModel"); messageBox.PushMessage(new List { "☑Model Will be Saved In Next Train Episode:)" }, new List { messageBox.goodColor }); } }