using System.Collections; using System.Collections.Generic; using UnityEngine; public class SceneUtil : ActionBase { public Color color01; public Color color02; // 辅助方法,用于初始化图标和相机列表 private void InitializeIconAndCameraLists(string iconName, string cameraName, List iconList, List cameraList, string[] deviceSns, string[] iconNames, string[] identifiers) { iconList.Clear(); cameraList.Clear(); Transform icon = transform.Find(iconName); Transform iconCamera = transform.Find(cameraName); if (icon != null && iconCamera != null) { int count = Mathf.Min(icon.childCount, deviceSns.Length, iconNames.Length); for (int i = 0; i < count; i++) { Transform currentIcon = icon.GetChild(i); Transform currentCamera = iconCamera.GetChild(i); // 获取当前索引对应的设备信息 string deviceSn = deviceSns[i]; string name = iconNames[i]; string identifier = identifiers[i]; // 创建 IconData 实例并添加到 iconList IconData iconData = new IconData(deviceSn, name, identifier, currentIcon, currentCamera.name, currentCamera); iconList.Add(iconData); cameraList.Add(currentCamera); } icon.gameObject.SetActive(false); iconCamera.gameObject.SetActive(false); } } public override void Init() { // 确保 AppCache 中的列表类型为 List if (AppCache.iconPointList01 == null) AppCache.iconPointList01 = new List(); if (AppCache.iconPointList02 == null) AppCache.iconPointList02 = new List(); if (AppCache.iconPointList03 == null) AppCache.iconPointList03 = new List(); if (AppCache.iconPointList04 == null) AppCache.iconPointList04 = new List(); if (AppCache.iconPointList05 == null) AppCache.iconPointList05 = new List(); // 初始化 GNSS 相关列表(12个设备) InitializeIconAndCameraLists("GNSS", "GNSS视角", AppCache.iconPointList01, AppCache.iconCameraList01, new string[] { "ys_2026020450" }, new string[] { "GNSS" }, new string[] { "" }); // 初始化环境量监测相关列表(1个设备) InitializeIconAndCameraLists("测斜仪监测", "测斜仪监测视角", AppCache.iconPointList02, AppCache.iconCameraList02, new string[] { "ys_2026020452" }, new string[] { "固定测斜仪" }, new string[] { "" }); // 初始化测缝针监测相关列表(9个设备) InitializeIconAndCameraLists("雨量监测", "雨量监测视角", AppCache.iconPointList03, AppCache.iconCameraList03, new string[] { "ys_2026020454" }, new string[] { "气象站" }, new string[] { "" }); // 初始化加速度振动监测相关列表(6个设备) InitializeIconAndCameraLists("渗压计监测", "渗压计监测视角", AppCache.iconPointList04, AppCache.iconCameraList04, new string[] { "ys_2026020453" }, new string[] { "渗压计" }, new string[] { "" }); InitializeIconAndCameraLists("位移监测", "位移监测视角", AppCache.iconPointList05, AppCache.iconCameraList05, new string[] { "ys_2026020451" }, new string[] { "位移计" }, new string[] { "" }); gameObject.SetActive(true); } public override void RegisterAction() { } public override void RemoveAction() { } }