using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //using UnityEngine.UIElements; public class SmartBowManager : MonoBehaviour { [SerializeField] private Sprite Tick_texture; [SerializeField] private Sprite Cross_texture; [SerializeField] private Button SmartBow_btn; [SerializeField] private Button Connect_btn; [SerializeField] private Button CalibrateGyr_btn; [SerializeField] private Button CalibrateMag_btn; [SerializeField] private Image SmartBowStatus_img; [SerializeField] private Image ConnectionStatus_img; [SerializeField] private Image GyrStatus_img; [SerializeField] private Image MagStatus_img; [SerializeField] private GameObject SubMenuContainer; //[SerializeField] private Text testInfo; private bool bSmartBowMenuActive; //private int BowConnectionStatus = 0; // 0 - not connected, 1 - connecting, 2 - connected //private bool bCalibratingGyr = false; //private bool bCalibratingMag = false; //public delegate void SmartBowConnectionLostDelegate(); //public event SmartBowConnectionLostDelegate OnConnectionLost; void Awake() { } // Start is called before the first frame update void Start() { //SmartBowHelper.GetInstance().OnBluetoothError += BluetoothError; //SmartBow_btn.onClick.AddListener(ToggleSmartBowMenu); //CalibrateGyr_btn.onClick.AddListener(CalibrateGyr); //CalibrateMag_btn.onClick.AddListener(CalibrateMag); //SmartBowHelper.GetInstance().OnBluetoothStatusChanged += OnBluetoothStatusChanged; //SmartBowHelper.GetInstance().OnBluetoothModuleInited += OnSmartBowBluetoothInit; //SmartBowHelper.GetInstance().OnFunctionKeyPress += ResetAim; //ToggleSmartBowMenu(false); //UpdateBowStatus(); } // Update is called once per frame void Update() { //if (bCalibratingGyr && SmartBowHelper.GetInstance().IsGyrCompleted()) //{ // bCalibratingGyr = false; // UpdateBowStatus(); //} //if (bCalibratingMag && SmartBowHelper.GetInstance().IsMagCompleted()) //{ // bCalibratingMag = false; // UpdateBowStatus(); //} } //private void OnBluetoothStatusChanged(BluetoothStatusEnum oldStatus, BluetoothStatusEnum newStatus) //{ // if (newStatus == BluetoothStatusEnum.Connected) // { // BowConnectionStatus = 2; // } // else if (newStatus == BluetoothStatusEnum.Connecting) // { // BowConnectionStatus = 1; // } // else // None // { // BowConnectionStatus = 0; // if (oldStatus == BluetoothStatusEnum.Connected) // { // OnConnectionLost.Invoke(); // if (!bSmartBowMenuActive) // { // ToggleSmartBowMenu(true); // } // } // } // UpdateBowStatus(); //} //private void ConnectBow() //{ // SmartBowHelper.GetInstance().Connect(); //} //private void DisconnectBow() //{ // SmartBowHelper.GetInstance().Disconnect(); //} //private void CalibrateGyr() //{ // SmartBowHelper.GetInstance().StartGyrCalibration(); // bCalibratingGyr = true; // UpdateBowStatus(); //} //private void CalibrateMag() //{ // SmartBowHelper.GetInstance().StartMagCalibration(); // bCalibratingMag = true; // UpdateBowStatus(); //} //private void OnSmartBowBluetoothInit() //{ // SmartBowHelper.GetInstance().StartRotationSensor(); // SmartBowHelper.GetInstance().StartShootingSensor(); // UpdateBowStatus(); //} private void ToggleSmartBowMenu(bool b) { bSmartBowMenuActive = b; SubMenuContainer.SetActive(bSmartBowMenuActive); //Connect_btn.gameObject.SetActive(bSmartBowMenuActive); //CalibrateGyr_btn.gameObject.SetActive(bSmartBowMenuActive); //CalibrateMag_btn.gameObject.SetActive(bSmartBowMenuActive); //ConnectionStatus_img.gameObject.SetActive(bSmartBowMenuActive); //GyrStatus_img.gameObject.SetActive(bSmartBowMenuActive); //MagStatus_img.gameObject.SetActive(bSmartBowMenuActive); } private void ToggleSmartBowMenu() { bSmartBowMenuActive = !bSmartBowMenuActive; SubMenuContainer.SetActive(bSmartBowMenuActive); //Connect_btn.gameObject.SetActive(bSmartBowMenuActive); //CalibrateGyr_btn.gameObject.SetActive(bSmartBowMenuActive); //CalibrateMag_btn.gameObject.SetActive(bSmartBowMenuActive); //ConnectionStatus_img.gameObject.SetActive(bSmartBowMenuActive); //GyrStatus_img.gameObject.SetActive(bSmartBowMenuActive); //MagStatus_img.gameObject.SetActive(bSmartBowMenuActive); } //private void UpdateBowStatus() //{ // Connect_btn.onClick.RemoveAllListeners(); // if (BowConnectionStatus == 0) // { // // update connect button // Connect_btn.interactable = true; // Connect_btn.gameObject.GetComponentInChildren().text = "Connect"; // Connect_btn.onClick.AddListener(ConnectBow); // ConnectionStatus_img.sprite = Cross_texture; // // update gyr button // CalibrateGyr_btn.interactable = false; // CalibrateGyr_btn.gameObject.GetComponentInChildren().text = "Calibrate Gyr"; // GyrStatus_img.sprite = Cross_texture; // // update mag button // CalibrateMag_btn.interactable = false; // CalibrateMag_btn.gameObject.GetComponentInChildren().text = "Calibrate Mag"; // ConnectionStatus_img.sprite = Cross_texture; // MagStatus_img.sprite = Cross_texture; // SmartBowStatus_img.sprite = Cross_texture; // } // else if (BowConnectionStatus == 1) // { // // update connect button // Connect_btn.interactable = false; // Connect_btn.gameObject.GetComponentInChildren().text = "Connecting"; // ConnectionStatus_img.sprite = Cross_texture; // // update gyr button // CalibrateGyr_btn.interactable = false; // CalibrateGyr_btn.gameObject.GetComponentInChildren().text = "Calibrate Gyr"; // GyrStatus_img.sprite = Cross_texture; // // update mag button // CalibrateMag_btn.interactable = false; // CalibrateMag_btn.gameObject.GetComponentInChildren().text = "Calibrate Mag"; // ConnectionStatus_img.sprite = Cross_texture; // MagStatus_img.sprite = Cross_texture; // SmartBowStatus_img.sprite = Cross_texture; // } // else // BowConnectionStatus == 2 // { // bool bGyrCalibrated = false; // bool bMagCalibrated = false; // // update connect button // Connect_btn.interactable = true; // Connect_btn.gameObject.GetComponentInChildren().text = "Disconnect"; // Connect_btn.onClick.AddListener(DisconnectBow); // ConnectionStatus_img.sprite = Tick_texture; // // update gyr // if (bCalibratingGyr) // { // CalibrateGyr_btn.interactable = false; // CalibrateGyr_btn.gameObject.GetComponentInChildren().text = "Calibrating Gyr..."; // GyrStatus_img.sprite = Cross_texture; // } // else // { // CalibrateGyr_btn.interactable = true; // CalibrateGyr_btn.gameObject.GetComponentInChildren().text = "Calibrate Gyr"; // GyrStatus_img.sprite = SmartBowHelper.GetInstance().IsGyrCompleted() ? Tick_texture : Cross_texture; // bGyrCalibrated = SmartBowHelper.GetInstance().IsGyrCompleted(); // } // // update mag // if (bCalibratingMag) // { // CalibrateMag_btn.interactable = false; // CalibrateMag_btn.gameObject.GetComponentInChildren().text = "Calibrating Mag..."; // MagStatus_img.sprite = Cross_texture; // } // else // { // CalibrateMag_btn.interactable = true; // CalibrateMag_btn.gameObject.GetComponentInChildren().text = "Calibrate Mag"; // MagStatus_img.sprite = SmartBowHelper.GetInstance().IsMagCompleted() ? Tick_texture : Cross_texture; // bMagCalibrated = SmartBowHelper.GetInstance().IsMagCompleted(); // } // SmartBowStatus_img.sprite = (bGyrCalibrated && bMagCalibrated) ? Tick_texture : Cross_texture; // } //} //public bool IsSmartBowConnected() //{ // return (BowConnectionStatus == 2); //} public void ResetAim() { JCFruitMaster.ins.ResetAim(); } //private void BluetoothError(BluetoothError error, string message) //{ // //testInfo.text = message; //} }