| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.UI;
- namespace InfraredManager
- {
- public class UIManagerSingle : MonoBehaviour
- {
- //连接弓箭按钮
- public Button mConnectBow;
- private Text mConnectBowText;
- //滚动的日志
- public GameObject logObj;
- public Text mScrollViewLogTextBow;
- private int bowLogTextCount = 0;
- //清空日志按钮
- public Button mClearLogBow;
- public Button mControlLogBtn;
- //进入野鸭模拟场景按钮
- public Button EnterDuckHunterBtn;
- //进入射箭模拟场景按钮
- public Button EnterGameBtn;
- //发送数据
- public Toggle SyncVector;
- #region 需要隐藏的面板节点
- public GameObject[] uiArray;
- public bool bGetPanelActive
- {
- get {
- return bPanelActive;
- }
- }
- bool bPanelActive = true;
- #endregion
- #region 需要调整的材质信息
- [Range(0.1f, 3.0f)]
- public float brightness = 1.0f; // 亮度
- public Slider brightnessSlider;
- public Text brightnessText;
- [Range(0.1f, 3.0f)]
- public float saturation = 1.0f; // 饱和度
- public Slider saturationSlider;
- public Text saturationText;
- [Range(0.1f, 3.0f)]
- public float contrast = 1.0f; // 对比度
- public Slider contrastSlider;
- public Text contrastText;
- public Material material; // 材质
- //亮度
- public void SliderBrightness()
- {
- var _value = brightnessSlider.value;
- brightness = ((int)(_value * 10)) / 10.0f;
- brightnessText.text = brightness + "";
- material.SetFloat("_Brightness", brightness); // 设置亮度
- }
- //饱和度
- public void SliderSaturation()
- {
- var _value = saturationSlider.value;
- saturation = ((int)(_value * 10)) / 10.0f;
- saturationText.text = saturation + "";
- material.SetFloat("_Saturation", saturation); // 设置饱和度
- }
- //对比度
- public void SliderContrast()
- {
- var _value = contrastSlider.value;
- contrast = ((int)(_value * 10)) / 10.0f;
- contrastText.text = contrast + "";
- material.SetFloat("_Contrast", contrast); // 设置对比度
- }
- public void onReset() {
- brightnessSlider.value = 1.0f;
- saturationSlider.value = 1.0f;
- contrastSlider.value = 1.0f;
- SliderBrightness();
- SliderSaturation();
- SliderContrast();
- }
- #endregion
- void Awake()
- {
- if (ConnetDevicesSingle.ins)
- ConnetDevicesSingle.ins.OnLogAction += SetLogText;
- Debug.Log("SetLogText!");
- }
- // Start is called before the first frame update
- void Start()
- {
- mConnectBow.onClick.AddListener(onConnectBowDevice);
- mConnectBowText = mConnectBow.GetComponentInChildren<Text>();
- mClearLogBow.onClick.AddListener(clearLogText);
- mControlLogBtn.onClick.AddListener(onControlLog);
- EnterGameBtn.onClick.AddListener(enterGame);
- EnterDuckHunterBtn.onClick.AddListener(enterDuckHunter);
- EnterDuckHunterBtn.interactable = true;
- EnterGameBtn.interactable = true;
- mConnectBow.interactable = false;
- //默认显示并且在start 读取
- SyncVector.isOn = PlayerPrefs.GetInt("CrossHairImageActive", 1) == 1;
- }
- void OnDestroy()
- {
- if (ConnetDevicesSingle.ins)
- ConnetDevicesSingle.ins.OnLogAction -= SetLogText;
- }
- // Update is called once per frame
- void Update()
- {
- //更新ui
- if (ConnetDevicesSingle.ins)
- {
- //进入游戏
- if (ConnetDevicesSingle.ins.mBluetoothHelperBow != null)
- {
- bool mBowConnected = ConnetDevicesSingle.ins.mBluetoothHelperBow.isConnected();
- bool mBowIsScanning = ConnetDevicesSingle.ins.mIsBowScanning;
- bool mBowIsConnecting = ConnetDevicesSingle.ins.mIsBowConnecting;
- if (!mBowConnected && !mBowIsScanning && !mBowIsConnecting)
- {
- //未连接,未扫描,不是连接中
- mConnectBowText.text = "点击连接弓箭";
- if (!mConnectBow.interactable)
- mConnectBow.interactable = true;
- }
- else if (!mBowConnected && mBowIsScanning)
- {
- //扫描中
- mConnectBowText.text = "扫描中...";
- if (mConnectBow.interactable)
- mConnectBow.interactable = false;
- }
- else if (mBowConnected)
- {
- //已连接
- mConnectBowText.text = "已连接";
- //if (mConnectBow.interactable)
- // mConnectBow.interactable = false;
- if (!mConnectBow.interactable)
- mConnectBow.interactable = true;
- }
- //if (mBowConnected)
- //{
- // if (!EnterDuckHunterBtn.interactable)
- // EnterDuckHunterBtn.interactable = true;
- // if (!EnterGameBtn.interactable)
- // EnterGameBtn.interactable = true;
- //}
- //else
- //{
- // if (EnterDuckHunterBtn.interactable)
- // EnterDuckHunterBtn.interactable = false;
- // if (EnterGameBtn.interactable)
- // EnterGameBtn.interactable = false;
- //}
- }
- }
- }
- //连接弓箭设备
- void onConnectBowDevice()
- {
- ConnetDevicesSingle.ins?.OnBowScanNearbyDevices();
- }
- public void SetLogText(string text)
- {
- //Debug.Log("SetLogText:" + text);
- if (bowLogTextCount > 200)
- {
- clearLogText();
- }
- mScrollViewLogTextBow.text += text + "\n";
- bowLogTextCount++;
- }
- public void clearLogText()
- {
- mScrollViewLogTextBow.text = "";
- bowLogTextCount = 0;
- }
- public void onControlLog() {
- logObj.SetActive(!logObj.activeSelf);
- }
- public void enterGame()
- {
- SceneManager.LoadScene("Game_InfraredCamera", LoadSceneMode.Single);
- hideManager();
- }
- public void enterDuckHunter()
- {
- SceneManager.LoadScene("DuckHunter_Test2", LoadSceneMode.Single);
- hideManager();
- }
- public void SendGetConfig()
- {
- }
- public void SendGetShoot()
- {
- ConnetDevicesSingle.ins?.ButtonShoot();
- }
- public void onHideCrosshair()
- {
- ConnetDevicesSingle.ins?.onHideCrosshair();
- SyncVector.isOn = false;
- }
- public void onShowCrosshair()
- {
- ConnetDevicesSingle.ins?.onShowCrosshair();
- SyncVector.isOn = true;
- }
- public void onToggleSyncVector() {
- if (SyncVector.isOn)
- {
- ConnetDevicesSingle.ins?.onShowCrosshair();
- }
- else {
- ConnetDevicesSingle.ins?.onHideCrosshair();
- }
- }
- //隐藏控制面板UI
- public void hideManager()
- {
- // transform.parent.GetComponent<Canvas>().gameObject.SetActive(false);
- bPanelActive = false;
- for (int i = 0; i < uiArray.Length; i++)
- {
- uiArray[i].SetActive(false);
- }
- }
- //显示控制面板UI
- public void showManager()
- {
- // transform.parent.GetComponent<Canvas>().gameObject.SetActive(true);
- bPanelActive = true;
- for (int i = 0; i < uiArray.Length; i++)
- {
- uiArray[i].SetActive(true);
- }
- }
- }
- }
|