using Assets.Scripts.Devices; using Assets.Scripts.Devices.Ant; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class DeviceItem : Selectable, IEventSystemHandler, IPointerClickHandler { private bool isOn; private Text mText; private Image network; private Image signal; private float timer = 0f; public AbstractDevice DeviceInfo { get;set; } protected override void Awake() { mText = this.transform.Find("Name").GetComponent(); network = this.transform.Find("Network").GetComponent(); signal = this.transform.Find("Signal").GetComponent(); } // Start is called before the first frame update protected override void Start() { //this.currentSelectionState = SelectionState.Selected if (DeviceInfo == null) return; mText.text = DeviceInfo.Name;// + "-" + DeviceInfo.DeviceNumber; if(DeviceInfo.Network == NetworkType.ANT) { mText.text += "-" + DeviceInfo.DeviceNumber; } //if(DeviceInfo.State == DeviceState.Connected) { // this.SetSelectedStyle(); } if(DeviceInfo.Network == NetworkType.BLE) { network.sprite = Resources.Load("Images/link_bluetooth_2"); } else { signal.enabled = false; } SetSignal(); } private void SetSignal() { if(DeviceInfo == null) { return; } Debug.Log(DeviceInfo.SignalStrength); //signal.enabled = true; var signalValue = DeviceInfo.SignalStrength * -1; if (signalValue >= 0 && signalValue <= 20) { signal.sprite = Resources.Load("Images/Signal_1"); } else if (signalValue > 20 && signalValue <= 60) { signal.sprite = Resources.Load("Images/Signal_2"); } else if (signalValue > 60)//&& signalValue <= 97 { signal.sprite = Resources.Load("Images/Signal_3"); } } public override void OnPointerEnter(PointerEventData eventData) { //base.OnPointerEnter(eventData); //Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); } private void SetSelectedStyle() { ColorUtility.TryParseHtmlString("#F93086", out Color color); mText.color = color; var shadow = mText.gameObject.GetComponent(); if (shadow == null) { shadow = mText.gameObject.AddComponent(); } shadow.enabled = true; ColorUtility.TryParseHtmlString("#F93086", out Color color1); shadow.effectColor = color1; network.color = color1; } public override void Select() { //base.Select(); Debug.Log("select"); //SetSelectedStyle(); //UIManager.CloseModal(); } public override void OnDeselect(BaseEventData eventData) { //base.OnDeselect(eventData); //Debug.Log("deselect"); //DeviceInfo.Disconnect(); } // Update is called once per frame void Update() { if (timer >= 2) { timer = 0f; SetSignal(); return; } timer += Time.deltaTime; } public void OnPointerClick(PointerEventData eventData) { //this.Select(); //DeviceInfo.Connect(); } public bool GetStatus() { return this.isOn; } public void Set(bool value) { if(!this.IsActive() || this.interactable == false) { return; } this.isOn = value; if (this.isOn) { SetSelectedStyle(); var manager = FindObjectOfType(); manager.SelectDevice(this); } else { mText.color = Color.white; network.color = Color.white; var shadow = mText.gameObject.GetComponent(); if (shadow != null) { //shadow = mText.gameObject.AddComponent(); shadow.enabled = false; } } } }