修改联机UI,马甲选择第二版

This commit is contained in:
ZYT
2026-04-09 17:21:27 +08:00
parent 184ffe2299
commit b9cf0b22a9
60 changed files with 5710 additions and 2071 deletions

View 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;
}
}