Aimbot-ParallelEnv/Assets/Script/UI/HUDController.cs
2023-10-23 01:54:30 +09:00

65 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class HUDController : MonoBehaviour
{
public bool chartOn = false;
[SerializeField] private GameObject sideChannelObj;
[SerializeField] private Toggle chartOnToggleObj;
[SerializeField] private Button saveModelButton;
[SerializeField] private TMP_InputField chartOnTimeOutInputObj;
[SerializeField] private 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<AimBotSideChannelController>();
messageBox = gameObject.GetComponent<MessageBoxController>();
}
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 OnChartTimeOutTextChange()
{
try
{
chartOnTimeOut = Math.Abs(int.Parse(chartOnTimeOutInputObj.GetComponent<TMP_InputField>().text));
}
catch (NullReferenceException)
{
chartOnTimeOut = chartOnTimeOutDefault;
}
}
public void OnSaveModelButtonPressed()
{
// Send message to python to save model
sideChannelController.SendSideChannelMessage("Command", "SaveModel");
messageBox.PushMessage(new List<string> { "☑Model Will be Saved In Next Train Episode:)" }, new List<string> { messageBox.goodColor });
}
}