using DG.Tweening; using Kill.Managers; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Kill.UI.Pages { /// /// 首页设备列表项 - 显示单个设备信息 /// 支持左滑手势:左滑时菜单向左滑出并显示高斯模糊覆盖层, /// 滑动超过菜单宽度1/3松手则完整展开,否则缩回并隐藏模糊层 /// public class HomePageDeviceItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { public Text deviceNameText; public GameObject selectedIndicator; /// 菜单(子物体,锚点位于item最右侧),左滑时向左滑出 public RectTransform menuRect; /// 高斯模糊覆盖层(子物体,覆盖其他内容),菜单出现时显示,缩回时隐藏 public GameObject blurOverlay; // 当前设备信息 public DeviceInfo deviceInfo; /// 当前展开菜单的item(全局仅允许一个菜单展开) private static HomePageDeviceItem openItem; private float menuWidth; private float currentOffset; private float dragStartOffset; private bool isMenuOpen; private bool isDragging; private Vector3 menuInitPos; private Tweener tweener; private Button button; void Awake() { button = GetComponent