修改联机UI,马甲选择第二版
This commit is contained in:
98
Assets/_Zombie/Scripts/UI/XuanBtn.cs
Normal file
98
Assets/_Zombie/Scripts/UI/XuanBtn.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TruegearSdk;
|
||||
|
||||
public class XuanBtn : MonoBehaviour
|
||||
{
|
||||
public Text IPText;
|
||||
public Image BgImage;
|
||||
public Sprite[] BgSprites; // 未选中时的背景图片数组:第1个设备用BgSprites[0],第2个设备用BgSprites[1]
|
||||
public Sprite[] SelectedBgSprites; // 选中时的背景图片数组:第1个设备用SelectedBgSprites[0],第2个设备用SelectedBgSprites[1]
|
||||
private DeviceData _deviceInfo;
|
||||
private bool _isSelected = false;
|
||||
private int _deviceIndex = 0;
|
||||
|
||||
// 选中回调
|
||||
public Action<XuanBtn> OnSelectCallback;
|
||||
|
||||
public void Init(DeviceData deviceInfo, int deviceIndex)
|
||||
{
|
||||
_deviceInfo = deviceInfo;
|
||||
_deviceIndex = deviceIndex;
|
||||
|
||||
// 显示设备地址
|
||||
if (IPText != null)
|
||||
{
|
||||
IPText.text = deviceInfo.address;
|
||||
}
|
||||
|
||||
// 初始化时显示对应的背景图片
|
||||
if (BgImage != null)
|
||||
{
|
||||
BgImage.enabled = true;
|
||||
if (BgSprites != null && BgSprites.Length > 0)
|
||||
{
|
||||
int bgIndex = _deviceIndex % BgSprites.Length;
|
||||
BgImage.sprite = BgSprites[bgIndex];
|
||||
}
|
||||
BgImage.color = new Color(1, 1, 1, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 选中设备(点击设备按钮时调用)
|
||||
public void OnTouchBtn()
|
||||
{
|
||||
// 点击时直接设为选中状态(不切换)
|
||||
// 选择逻辑在TrueGearPanel中处理
|
||||
SetSelected(true);
|
||||
|
||||
if (OnSelectCallback != null)
|
||||
{
|
||||
OnSelectCallback(this);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置选中状态
|
||||
public void SetSelected(bool isSelected)
|
||||
{
|
||||
_isSelected = isSelected;
|
||||
if (BgImage != null)
|
||||
{
|
||||
BgImage.enabled = true;
|
||||
if (isSelected)
|
||||
{
|
||||
// 选中时使用SelectedBgSprites
|
||||
if (SelectedBgSprites != null && SelectedBgSprites.Length > 0)
|
||||
{
|
||||
int bgIndex = _deviceIndex % SelectedBgSprites.Length;
|
||||
BgImage.sprite = SelectedBgSprites[bgIndex];
|
||||
}
|
||||
BgImage.color = new Color(1, 1, 1, 1); // 设置为不透明
|
||||
}
|
||||
else
|
||||
{
|
||||
// 取消选中时使用BgSprites
|
||||
if (BgSprites != null && BgSprites.Length > 0)
|
||||
{
|
||||
int bgIndex = _deviceIndex % BgSprites.Length;
|
||||
BgImage.sprite = BgSprites[bgIndex];
|
||||
}
|
||||
BgImage.color = new Color(1, 1, 1, 1); // 设置为不透明
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取设备信息
|
||||
public DeviceData GetDeviceInfo()
|
||||
{
|
||||
return _deviceInfo;
|
||||
}
|
||||
|
||||
// 获取是否选中
|
||||
public bool IsSelected()
|
||||
{
|
||||
return _isSelected;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user