GQ_Communicate/GQ_URP/GQ/Assets/script/GameManager.cs

2875 lines
101 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DG.Tweening;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using Unity.Burst.CompilerServices;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using static DeviceQuery;
using static ENVQuery;
using static PortQuery;
using static TmsAlarmQuery;
public class GameManager : MonoBehaviour
{
public static GameManager Inst;
/// <summary>
/// 接口地址
/// </summary>
public webURL Jk_URL;
/// <summary>
/// 全局变量
/// </summary>
public GlobalParameter arguments = new GlobalParameter();
/// <summary>
/// 是否加载完成
/// </summary>
public bool isLoading = false;
string ct = null;
//[Header("机柜点位集合")]
//public List<Transform> Cabinets_POS;
[Header("机柜区域集合")]
public List<Transform> Cabinet_quYu;
[Header("当前设备ID")] public string nowDeviceID = null;
[Header("当前点击设备")] public GameObject nowDevice = null;
[Header("上一个设备ID")] public string lastDeviceID = null;
[Header("上一个点击设备")] public GameObject lastDevice = null;
/// <summary>
/// 当前聚焦机柜
/// </summary>
[Header("当前聚焦机柜")] public GameObject nowCabine;
/// <summary>
/// 当前查看的设备
/// </summary>
[Header("当前查看的设备")] public GameObject now_CK_Device = null;
[Header("设备------------------------查询接口")] public DeviceQuery.Root root_AllDevice;
///// <summary>
///// 场景所有机柜
///// </summary>
// public List<GameObject> Cabinets_go;
/// <summary>
/// 场景所有机柜
/// </summary>
[Header("场景所有机柜")] public List<GameObject> Cabinets_go;
/// <summary>
/// 场景所有机柜信息
/// </summary>
public List<DeviceList> Cabinets;
/// <summary>
/// 场景所有机框
/// </summary>
[Header("场景所有机框信息")] public List<GameObject> Racks_go = new List<GameObject>();
/// <summary>
/// 场景所有机框信息
/// </summary>
public List<DeviceList> Racks;
/// <summary>
/// 场景所有机槽
/// </summary>
[Header("场景所有机槽信息")] public List<GameObject> MachineSlots_go = new List<GameObject>();
/// <summary>
/// 场景所有机槽信息
/// </summary>
public List<DeviceList> MachineSlots;
/// <summary>
/// 场景所有板卡
/// </summary>
[Header("场景所有板卡信息")] public List<GameObject> TmsCards_go = new List<GameObject>();
/// <summary>
/// 场景所有板卡信息
/// </summary>
public List<DeviceList> TmsCards;
[Header("端口------------------------查询接口")] public PortQuery.Root root_AllPort;
/// <summary>
/// 场景所有端口
/// </summary>
[Header("场景所有端口信息")] public List<GameObject> TmsPorts_go = new List<GameObject>();
/// <summary>
/// 场景所有端口信息
/// </summary>
public List<PortList> TmsPorts;
[HideInInspector] public int nowLayerMask = 6;
[Header("环境------------------------查询接口")] public ENVQuery.Root root_AllENV = new ENVQuery.Root();
public List<ENVList> ENVs;
[Header("告警------------------------查询接口")] public TmsAlarmQuery.Root root_AllAlarm = new TmsAlarmQuery.Root();
public List<TmsAlarmList> tmsAlarms;
///// <summary>
///// 搜索框
///// </summary>
//[Header("--------------------------------")]
//public GameObject search_box;
[Header("----------弹窗--------------")]
public List<GameObject> pop_ups;
/// <summary>
/// 场景方大状态
/// </summary>
[Header("----------场景放大状态--------------")]
public bool magnifyState = false;
[Header("----------是否在循环读取信息--------------")]
public bool isgonging = false;
public EditorMenu editorMenu;
[Header("---------- 暂存箱子 --------------")]
public GameObject stagingPanel;
public Button stagingPanelClose_bt;
[Header("-------------- 搜索框------------------")]
//public GameObject objectToShow;
public GameObject search_box;
public GameObject objectToShow_add;
[Header("-------------- 所有机柜门------------------")]
public List<RoomDoor> roomDoors;
private void Awake()
{
if (Inst != this && Inst != null)
{
Destroy(this.gameObject);
}
else
{
Inst = this;
DontDestroyOnLoad(this.gameObject);
}
//StartCoroutine(LoadAddress());
}
private void Start()
{
Debug.Log("版本号 11.0.3");
roomDoors = CabinetUIManager.Instance.transform.GetChild(0).GetComponentsInChildren<RoomDoor>(true).ToList();
editorMenu.editorBtn.onClick.AddListener(() =>
{
if (Menu.M_数字机房_场景管理 == CabinetUIManager.Instance.current_menu && nowDevice != null)
{
if (nowDevice.GetComponent<DeviceQuery>() == null)
return;
//if (nowDevice.GetComponent<DeviceQuery>().deviceList.deviceType == "3")
// return;
if (string.IsNullOrEmpty(nowDeviceID))
{
PatternChoose.Inst.sb_xz_page.SetActive(true);//√
//objectToShow_add.gameObject.SetActive(false);
var SN1 = objectToShow_add.GetComponent<SearchName1>();
SN1.hide_menu();
objectToShow_add.SetActive(false);
}
else
{
PatternChoose.Inst.sb_bj_page.SetActive(true);//√
//objectToShow_add.gameObject.SetActive(false);
var SN1 = objectToShow_add.GetComponent<SearchName1>();
SN1.hide_menu();
objectToShow_add.SetActive(false);
}
}
editorMenu.gameObject.SetActive(false);
search_box.SetActive(false);
});
///---------------新加------------------------
editorMenu.deleteBtn.onClick.AddListener(() =>
{
DeleteFunction();
editorMenu.gameObject.SetActive(false);
});
PatternChoose.Inst.sb_xz_page.transform.Find("删除").GetComponent<Button>().onClick.AddListener(() =>
{
//if (GameManager.Inst.nowDevice.GetComponent<DeviceQuery>().deviceList.deviceType == "3")
// return;
DeleteFunction();
PatternChoose.Inst.sb_xz_page.gameObject.SetActive(false);
});
PatternChoose.Inst.sb_bj_page.transform.Find("底部/删除").GetComponent<Button>().onClick.AddListener(() =>
{
//if (GameManager.Inst.nowDevice.GetComponent<DeviceQuery>().deviceList.deviceType == "3")
// return;
DeleteFunction();
PatternChoose.Inst.sb_bj_page.gameObject.SetActive(false);
});
///---------------新加------------------------
#region old
//editorMenu.deleteBtn.onClick.AddListener(() =>
//{
// if (Menu.M_数字孪生_场景管理 == CabinetUIManager.Instance.current_menu && nowDevice != null)
// {
// if (nowDevice.GetComponent<DeviceQuery>() == null) return;
// if (string.IsNullOrEmpty(nowDeviceID))
// {
// editorMenu.gameObject.SetActive(false);
// var nub = nowDevice.GetComponent<DeviceItem>().volume;
// var _star = nowDevice.transform.parent.name;
// var star = Convert.ToInt32(_star) - 1;
// var p = nowDevice.transform.parent.parent;
// for (int i = star; i < star + Convert.ToInt32(nub); i++)
// {
// p.GetChild(i).GetComponent<UPosItem>().isOccupied = false;
// }
// DestroyImmediate(nowDevice);
// }
// else
// {
// var delete = PatternChoose.Inst.transform.Find("设备类").GetComponent<DeleteDevice>();
// //DeleteDevice delete = new DeleteDevice();
// delete.mybody.ids.Add(nowDeviceID);
// StartCoroutine(delete.SaveJsonCoroutine((x) =>
// {
// editorMenu.gameObject.SetActive(false);
// var nub = nowDevice.GetComponent<DragTest1>().volume;
// var _star = nowDevice.transform.parent.name;
// var star = Convert.ToInt32(_star) - 1;
// var p = nowDevice.transform.parent.parent;
// for (int i = star; i < star + Convert.ToInt32(nub); i++)
// {
// p.GetChild(i).GetComponent<UPosItem>().isOccupied = false;
// p.GetChild(i).GetComponent<UPosItem>().instruct.color = new Color(0, 1, 0, 1);
// }
// DestroyImmediate(nowDevice);
// }));
// }
// }
// editorMenu.gameObject.SetActive(false);
//});
//Debug.Log("版本号 1.1.1");
#endregion
stagingPanelClose_bt.onClick.AddListener(() =>
{
if (ExtendedFlycam.Inst)
{
ExtendedFlycam.Inst.reminder((isgo, list, prompt) =>
{
if (!isgo)
{
if (!string.IsNullOrEmpty(prompt))
SecondConfirmPanel.DeleteConform((x) => { }, prompt);
}
});
}
});
editorMenu.checkBtn.onClick.AddListener(() =>
{
editorMenu.gameObject.SetActive(false);
checkDevice_cjgl();
search_box.SetActive(false);
});
}
/// <summary>
/// 查看设备
/// </summary>
public void checkDevice_cjgl()
{
if (Menu.M_数字机房_场景管理 == CabinetUIManager.Instance.current_menu && now_CK_Device != null)
{
if (now_CK_Device.GetComponent<DeviceQuery>() == null)
return;
PatternChoose.Inst.sb_ck_page.SetActive(true);
var SN1 = objectToShow_add.GetComponent<SearchName1>();
SN1.hide_menu();
objectToShow_add.SetActive(false);
}
}
public void checkDevice()
{
if (now_CK_Device.GetComponent<DeviceQuery>() == null)
return;
PatternChoose.Inst.sb_ck_page.SetActive(true);
}
/// <summary>
/// 删除设备
/// </summary>
public void DeleteFunction()
{
SecondConfirmPanel.DeleteConform((isdelete) =>
{
if (!isdelete)
return;
else
{
if (Menu.M_数字机房_场景管理 == CabinetUIManager.Instance.current_menu && nowDevice != null)
{
if (nowDevice.GetComponent<DeviceQuery>() == null)
{
objectToShow_add.SetActive(true);
search_box.SetActive(true);
return;
}
if (string.IsNullOrEmpty(nowDeviceID))
{
DeviceItem di = nowDevice.GetComponent<DeviceItem>();
UPosItem upi = nowDevice.transform.parent.GetComponent<UPosItem>();
upi.uPosManager.SetCurrentUPosIsOccupied(di.startIndex, di.volume, false);
DestroyImmediate(nowDevice);
}
else
{
var delete = PatternChoose.Inst.transform.Find("设备类").GetComponent<DeleteDevice>();
//DeleteDevice delete = new DeleteDevice();
delete.mybody.ids.Clear();
delete.mybody.ids.Add(nowDeviceID);
StartCoroutine(delete.SaveJsonCoroutine((x, prompt) =>
{
if (x)
{
DeviceItem di = nowDevice.GetComponent<DeviceItem>();
//UPosItem upi = nowDevice.transform.parent.GetComponent<UPosItem>();
var u = FindParent(nowDevice, IsFindUposItem);
if (!u)
return;
UPosItem upi = u.GetComponent<UPosItem>();
upi.uPosManager.SetCurrentUPosIsOccupied(di.startIndex, di.volume, false);
DestroyImmediate(nowDevice);
}
else
{
}
}));
}
objectToShow_add.SetActive(true);
search_box.SetActive(true);
}
}
}, "是否删除");
}
private void OnEnable()
{
//StartCoroutine(LoadJSON(Application.streamingAssetsPath + "/设备查询.json"));
//StartCoroutine(LoadJSON(Application.streamingAssetsPath + "/端口查询.json"));
//StartCoroutine(LoadJSON(Application.streamingAssetsPath + "/告警查询.json"));
//StartCoroutine(LoadJSON(Application.streamingAssetsPath + "/环境查询.json"));
//return;
#region
//TransparentGlowManage.Inst.addScript();
//await init_Device();
//await init_Port();
//await init_TmsAlarm();
//await init_ENV();
//if (root_AllDevice.data == null) return;
//#region 加载场景
//Load_Device();
//Load_Port();
//Load_TmsAlarm();
//Load_ENV();
//#endregion
#endregion
}
/// <summary>
/// 加载环境
/// </summary>
public void Load_ENV()
{
if (root_AllENV == null) return;
/***********************************************************/
//环境信息-保存
for (int i = 0; i < root_AllENV.data.Count; i++)
ENVs.Add(root_AllENV.data[i]);
for (int i = 0; i < ENVs.Count; i++)
{
bool isFind = false;
var rackId = ENVs[i].rackId;
foreach (var item in Cabinets_go)
{
var D = item.GetComponent<DeviceQuery>().deviceList;
if (D.id == rackId)
{
//温度
if (ENVs[i].pointType == "1")
{
item.GetComponent<ENVQuery>().eNVList_W = ENVs[i];
isFind = true;
break;
}
//湿度
else if (ENVs[i].pointType == "2")
{
item.GetComponent<ENVQuery>().eNVList_S = ENVs[i];
isFind = true;
break;
}
//烟感
else if (ENVs[i].pointType == "3")
{
item.GetComponent<ENVQuery>().eNVList_Y = ENVs[i];
isFind = true;
break;
}
//水浸
else if (ENVs[i].pointType == "4")
{
item.GetComponent<ENVQuery>().eNVList_J = ENVs[i];
isFind = true;
break;
}
}
}
if (isFind) continue;
//var machine_room = GameObject.Find("机房");
var machine_room = CabinetUIManager.Instance.transform.Find("分离消防柜和墙体/机房");
if (machine_room && rackId == machine_room.GetComponent<DeviceQuery>().deviceList.id)
{
//温度
if (ENVs[i].pointType == "1")
{
machine_room.GetComponent<ENVQuery>().eNVList_W = ENVs[i];
isFind = true;
}
//湿度
else if (ENVs[i].pointType == "2")
{
machine_room.GetComponent<ENVQuery>().eNVList_S = ENVs[i];
isFind = true;
}
//烟感
else if (ENVs[i].pointType == "3")
{
machine_room.GetComponent<ENVQuery>().eNVList_Y = ENVs[i];
isFind = true;
}
//水浸
else if (ENVs[i].pointType == "4")
{
machine_room.GetComponent<ENVQuery>().eNVList_J = ENVs[i];
isFind = true;
}
}
if (isFind) continue;
//var accumulator_room = GameObject.Find("蓄电池室");
var accumulator_room = CabinetUIManager.Instance.transform.Find("分离消防柜和墙体/蓄电池室");
if (accumulator_room && rackId == accumulator_room.GetComponent<DeviceQuery>().deviceList.id)
{
//温度
if (ENVs[i].pointType == "1")
{
accumulator_room.GetComponent<ENVQuery>().eNVList_W = ENVs[i];
isFind = true;
}
//湿度
else if (ENVs[i].pointType == "2")
{
accumulator_room.GetComponent<ENVQuery>().eNVList_S = ENVs[i];
isFind = true;
}
//烟感
else if (ENVs[i].pointType == "3")
{
accumulator_room.GetComponent<ENVQuery>().eNVList_Y = ENVs[i];
isFind = true;
}
//水浸
else if (ENVs[i].pointType == "4")
{
accumulator_room.GetComponent<ENVQuery>().eNVList_J = ENVs[i];
isFind = true;
}
}
if (isFind) continue;
}
Debug.Log("环境加载完成");
}
/// <summary>
/// 加载告警
/// </summary>
public void Load_TmsAlarm()
{
if (root_AllAlarm == null) return;
/***********************************************************/
//告警信息-保存
for (int i = 0; i < root_AllAlarm.data.Count; i++)
tmsAlarms.Add(root_AllAlarm.data[i]);
for (int i = 0; i < tmsAlarms.Count; i++)
{
bool isFind = false;
var deviceId = tmsAlarms[i].deviceId;
///设备id
foreach (var item in Cabinets_go)
{
var D = item.GetComponent<DeviceQuery>().deviceList;
if (D.id == deviceId)
{
item.GetComponent<TmsAlarmQuery>().tmsAlarmLists.Add(tmsAlarms[i]);
isFind = true;
break;
}
}
if (isFind) continue;
foreach (var item in Racks_go)
{
var D = item.GetComponent<DeviceQuery>().deviceList;
if (D.id == deviceId)
{
item.GetComponent<TmsAlarmQuery>().tmsAlarmLists.Add(tmsAlarms[i]);
isFind = true;
break;
}
}
if (isFind) continue;
foreach (var item in MachineSlots_go)
{
var D = item.GetComponent<DeviceQuery>().deviceList;
if (D.id == deviceId)
{
item.GetComponent<TmsAlarmQuery>().tmsAlarmLists.Add(tmsAlarms[i]);
isFind = true;
break;
}
}
if (isFind) continue;
foreach (var item in TmsCards_go)
{
var D = item.GetComponent<DeviceQuery>().deviceList;
if (D.id == deviceId)
{
item.GetComponent<TmsAlarmQuery>().tmsAlarmLists.Add(tmsAlarms[i]);
isFind = true;
break;
}
}
}
Debug.Log("告警加载完成");
}
/// <summary>
/// 加载端口
/// </summary>
private void Load_Port()
{
if (root_AllPort == null) return;
/***********************************************************/
//端口信息-保存
foreach (var item in root_AllPort.data)
TmsPorts.Add(item);
//动态加载设备(端口)
for (int i = 0; i < TmsCards_go.Count; i++)//遍历板卡
{
//板卡下所有设备
var dk = TmsCards_go[i].transform.GetComponentsInChildren<PortQuery>().ToList();
if (dk == null) continue;
for (int j = 0; j < dk.Count; j++)
{
TmsPorts_go.Add(dk[j].gameObject);
}
}
for (int i = 0; i < Racks_go.Count; i++)//遍历机框
{
//机框下所有设备
var dk = Racks_go[i].transform.GetComponentsInChildren<PortQuery>().ToList();
if (dk == null) continue;
for (int j = 0; j < dk.Count; j++)
{
TmsPorts_go.Add(dk[j].gameObject);
}
}
for (int i = 0; i < MachineSlots_go.Count; i++)//遍历机槽
{
//机槽下所有设备
var dk = MachineSlots_go[i].transform.GetComponentsInChildren<PortQuery>().ToList();
if (dk == null) continue;
for (int j = 0; j < dk.Count; j++)
{
TmsPorts_go.Add(dk[j].gameObject);
}
}
//读取端口配置
for (int i = 0; i < TmsPorts_go.Count; i++)
{
PortQuery P;
DeviceQuery DP;
P = TmsPorts_go[i].GetComponent<PortQuery>();
//DP = TmsPorts_go[i].transform.parent.GetComponent<DeviceQuery>();
var _DP = FindParent(TmsPorts_go[i], IsFindRacks_goORMachineSlots_goORTmsCards_go);
if (/*string.IsNullOrEmpty(P.portList.id) ||*/ !_DP)
continue;
DP = _DP.GetComponent<DeviceQuery>();
if (!DP)
continue;
foreach (var item in TmsPorts)
{
if (item.deviceId == DP.deviceList.id && item.portPosition == P.portList.portPosition)
{
TmsPorts_go[i].GetComponent<PortQuery>().portList = item;
TmsPorts_go[i].name = item.id;
break;
}
}
}
Array.ForEach(GameObject.FindObjectsOfType<PortQuery>(), item =>
{
if (!item.gameObject.GetComponent<ClickEvent>()) item.gameObject.AddComponent<ClickEvent>();
});
Debug.Log("端口加载完成");
}
/// <summary>
/// 加载设备
/// </summary>
private void Load_Device()
{
Debug.Log("##01");
if (root_AllDevice == null) return;
Debug.Log("##02");
//信息分类-保存
foreach (var item in root_AllDevice.data)
{
//(机柜)
if (item.type == "1")
Cabinets.Add(item);
//(机框)
if (item.type == "2" && item.deviceType == "1")
Racks.Add(item);
//(机槽)
else if (item.type == "2" && item.deviceType == "2")
MachineSlots.Add(item);
//(板卡)
else if (item.type == "2" && item.deviceType == "3")
TmsCards.Add(item);
}
Debug.Log("##03");
//读取机柜配置
#region
//if (Cabinets_POS != null)
//{
// for (int i = 0; i < Cabinets_POS.Count; i++)
// {
// for (int j = 0; j < Cabinets.Count; j++)
// {
// if (Cabinets_POS[i].name == Cabinets[j].devicePosition && Cabinets[j].type == "1")
// {
// GameObject go;
// try
// {
// go = Instantiate(Resources.Load<GameObject>("古泉站换流站机房/" + ""));//??
// }
// catch (Exception e)
// {
// Debug.Log("模型生成错误:" + e.Message);
// break;
// }
// var n = Cabinets_POS[i].name.Split('-');//拆分区域-编号
// go.name = Cabinets_POS[i].name;
// go.transform.SetParent(Cabinet_quYu[CengJi(n[0])]);
// go.transform.position = Cabinets_POS[i].position;
// go.transform.rotation = Cabinets_POS[i].rotation;
// go.GetComponent<DeviceQuery>().deviceList = root_AllDevice.data[j];
// Cabinets_go.Add(go);
// break;
// }
// }
// }
//}
#endregion
//读取机柜配置
for (int i = 0; i < Cabinets_go.Count; i++)
{
var n = Cabinets_go[i].GetComponent<DeviceQuery>().deviceList;
for (int j = 0; j < Cabinets.Count; j++)
{
if (n.devicePosition == Cabinets[j].devicePosition)
{
n = Cabinets[j];
Cabinets_go[i].GetComponent<DeviceQuery>().deviceList = n;
//AssignFields(n, Cabinets[j]);
break;
}
}
}
Debug.Log("##04 Count:" + ENVs.Count);
//读取机柜环境配置
for (int j = 0; j < ENVs.Count;)
{
Debug.Log("##04.1 Count:" + ENVs.Count);
for (int i = 0; i < Cabinets_go.Count; i++)
{
Debug.Log("##04.2 i:" + i);
var n = Cabinets_go[i].GetComponent<DeviceQuery>().deviceList;
Debug.Log("##04.3 Count:" + ENVs.Count);
var e = Cabinets_go[i].GetComponent<ENVQuery>();
Debug.Log("##04.4 Count:" + ENVs.Count);
//if (ENVs[j].pointDeviceId == n.id)
if (ENVs[j].rackId == n.id)
{
if (ENVs[j].pointType == "1")
{
Debug.Log("##04.4.1 Count:" + ENVs.Count);
e.eNVList_W = ENVs[j];
j++;
break;
}
else if (ENVs[j].pointType == "2")
{
Debug.Log("##04.4.2 Count:" + ENVs.Count);
e.eNVList_S = ENVs[j];
j++;
break;
}
else if (ENVs[j].pointType == "3")
{
Debug.Log("##04.4.3 Count:" + ENVs.Count);
e.eNVList_Y = ENVs[j];
j++;
break;
}
else if (ENVs[j].pointType == "4")
{
Debug.Log("##04.4.4 Count:" + ENVs.Count);
e.eNVList_S = ENVs[j];
j++;
break;
}
}
else {
j++;
}
Debug.Log("##04.5 Count:" + ENVs.Count);
}
Debug.Log("j:" + j);
}
Debug.Log("##05");
//动态加载设备(机框)
for (int i = 0; i < Racks.Count; i++)
{
foreach (var item in Cabinets_go)
{
if (item.GetComponent<DeviceQuery>().deviceList.id == Racks[i].rackId && !string.IsNullOrEmpty(Racks[i].modelNum))
{
//获取模型编号
string modelNum = Racks[i].modelNum;
//获取U位
var U = Racks[i].devicePosition;
GameObject go;
//if (nowDevice && Racks_go.Contains(nowDevice))
//{
//}
//else
//{
//}
try
{
go = Instantiate(Resources.Load<GameObject>("古泉站机房模型90个型号/" + modelNum));
//写入机框配置
go.GetComponent<DeviceQuery>().deviceList = Racks[i];
Racks_go.Add(go);
Renderer renderer = go.GetComponentInChildren<Renderer>();
if (renderer)
{
var initrot = go.transform.rotation;
go.transform.rotation = Quaternion.identity;
var bounds = renderer.bounds;
var a = go.AddComponent<BoxCollider>();
a.enabled = false;
a.isTrigger = false;
a.center = bounds.center - go.transform.position;
a.size = bounds.size;
//a.transform.rotation = Quaternion.identity; //重置其旋转为默认值
go.transform.rotation = initrot;
}
Vector3 center = renderer.bounds.center;
go.transform.position = item.transform.Find("U位/" + U).position;
var anchorPos = go.transform.Find("锚点").gameObject;
var collider = item.transform.Find("U位/" + U).GetComponent<Collider>();
//go.transform.position = new Vector3(anchorPos.transform.position.x, anchorPos.transform.position.y + collider.bounds.size.y / 2, anchorPos.transform.position.z);
var uPosition = item.transform.Find("U位/" + U).position;
var colliderBounds = collider.bounds;
float yOffset = colliderBounds.extents.y - colliderBounds.center.y;
go.transform.position = new Vector3(uPosition.x, uPosition.y + colliderBounds.extents.y + yOffset, uPosition.z);
//go.transform.rotation = item.transform.Find("U位/" + U).rotation;
go.name = Racks[i].id;
DragController drag = gameObject.GetComponent<DeviceManager>().dragController.GetComponent<DragController>();
drag.oriObjectPrefab = go.GetComponent<DragTest1>();
drag.uPosManger = item.transform.Find("U位").GetComponent<UPosManger>();
drag.CountUPos(drag.oriObjectPrefab, Convert.ToInt32(Racks[i].devicePosition) - 1);
go.transform.SetParent(item.transform.Find("U位/" + U));
//模型错误微调
Model_error(modelNum, go);
}
catch (Exception e)
{
Debug.LogError("模型生成错误,机柜:" + item.name + ",模型编号:" + modelNum + "U位" + U + "\n" + e.Message + "\n" + e.StackTrace);
break;
}
}
}
}
Debug.Log("##06");
//动态加载设备(机槽)
for (int i = 0; i < Racks_go.Count; i++)//遍历机框
{
//机框下所有设备
var jc = Racks_go[i].transform.GetComponentsInChildren<DeviceQuery>().ToList();
for (int j = 0; j < jc.Count; j++)
{
//如果是机槽
if (jc[j].deviceList.deviceType == "2")
{
MachineSlots_go.Add(jc[j].gameObject);
}
}
}
Debug.Log("##07");
//读取机槽配置
for (int i = 0; i < MachineSlots_go.Count; i++)
{
DeviceQuery D;
DeviceQuery DP;
D = MachineSlots_go[i].transform.GetComponent<DeviceQuery>();//机槽
//DP = MachineSlots_go[i].transform.parent.GetComponent<DeviceQuery>();//机槽父物体
var _DP = FindParent(MachineSlots_go[i], IsFindRacks_go);//机槽父物体
if (!_DP) continue;
DP = _DP.GetComponent<DeviceQuery>();
if (!DP) continue;
foreach (var item in MachineSlots)
{
//机槽在机框里
/*if (item.deviceType == "2")
{
}*/
if (DP.deviceList.deviceType == "1" && item.shelfId == DP.deviceList.id && item.devicePosition == D.deviceList.devicePosition)
{
MachineSlots_go[i].GetComponent<DeviceQuery>().deviceList = item;
break;
}
}
}
Debug.Log("##08");
//动态加载设备(板卡)
for (int i = 0; i < MachineSlots_go.Count; i++)//遍历机槽
{
//机槽下所有设备
var bk = MachineSlots_go[i].transform.GetComponentsInChildren<DeviceQuery>().ToList();
for (int j = 0; j < bk.Count; j++)
{
//如果是板卡
if (bk[j].deviceList.deviceType == "3")
{
TmsCards_go.Add(bk[j].gameObject);
}
}
}
Debug.Log("##09");
for (int i = 0; i < Racks_go.Count; i++)//遍历机框
{
//机框下所有设备
var jk = Racks_go[i].GetComponent<DeviceQuery>();
if (!jk.conf2.isUseUPostItem)
{
var bk = Racks_go[i].transform.GetComponentsInChildren<DeviceQuery>().ToList();
for (int j = 0; j < bk.Count; j++)
{
//如果是板卡
if (bk[j].deviceList.deviceType == "3")
{
TmsCards_go.Add(bk[j].gameObject);
}
}
}
else
{
#region new
for (int j = 0; j < TmsCards.Count; j++)
{
if (TmsCards[j].id == "1691457954939693292")
{
Debug.Log("");
}
if (TmsCards[j].shelfId == jk.deviceList.id)
{
//获取模型编号
string modelNum = TmsCards[j].modelNum;
if (string.IsNullOrEmpty(modelNum))
{
continue;
}
//获取U位
var U = TmsCards[j].devicePosition;
GameObject go = null;
try
{
go = Instantiate(Resources.Load<GameObject>("古泉站机房模型90个型号/" + modelNum));
//写入板卡配置
go.GetComponent<DeviceQuery>().deviceList = TmsCards[j];
go.name = TmsCards[j].id;
TmsCards_go.Add(go);
DragController drag = gameObject.GetComponent<DeviceManager>().dragController.GetComponent<DragController>();
drag.oriObjectPrefab = go.GetComponent<DragTest1>();
drag.uPosManger = jk.transform.Find("U位").GetComponent<UPosManger>();
drag.CountUPos(drag.oriObjectPrefab, Convert.ToInt32(U) - 1);
//break;
continue;
}
catch (Exception e)
{
if (go)
DestroyImmediate(go);
Debug.LogError("板卡模型生成错误,设备:" + jk.name + ",模型编号:" + modelNum + "U位" + U + "\n" + e.Message + "\n" + e.StackTrace);
//break;
continue;
}
}
}
#endregion
}
}
Debug.Log("##010");
//读取板卡配置
for (int i = 0; i < TmsCards_go.Count; i++)
{
DeviceQuery DP;
DeviceQuery D;
//DP = TmsCards_go[i].transform.parent.GetComponent<DeviceQuery>();//板卡父物体
var _DP = FindParent(TmsCards_go[i], IsFindRacks_goORMachineSlots_go);
D = TmsCards_go[i].transform.GetComponent<DeviceQuery>();//板卡
if (!_DP) continue;
DP = _DP.GetComponent<DeviceQuery>();
foreach (var item in TmsCards)
{
/*if (item.deviceType == "3")
{
}*/
if (item.id == "1691457954939693292")
{
Debug.Log("");
}
//板卡在机槽里
if (DP.deviceList.deviceType == "2" && item.slotId == DP.deviceList.id && item.devicePosition == D.deviceList.devicePosition)
{
TmsCards_go[i].GetComponent<DeviceQuery>().deviceList = item;
break;
}
//板卡在机框里
else if (DP.deviceList.deviceType == "1" && item.shelfId == DP.deviceList.id && item.devicePosition == D.deviceList.devicePosition)
{
TmsCards_go[i].GetComponent<DeviceQuery>().deviceList = item;
break;
}
}
}
Debug.Log("设备加载完成");
}
/// <summary>
/// 查询所有设备
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public IEnumerator init_Device(Action<string> callback, bool isClear = true)
{
if (isClear)
{
for (int i = Racks_go.Count - 1; i >= 0; i--)
{
DestroyImmediate(Racks_go[i]);
}
//Debug.Log("@@12-1");
for (int i = MachineSlots_go.Count - 1; i >= 0; i--)
{
DestroyImmediate(MachineSlots_go[i]);
}
//Debug.Log("@@12-2");
for (int i = TmsCards_go.Count - 1; i >= 0; i--)
{
DestroyImmediate(TmsCards_go[i]);
}
//Debug.Log("@@12-3");
Cabinets.Clear();
}
if (isClear)
Racks_go.Clear();
Racks.Clear();
if (isClear)
MachineSlots_go.Clear();
MachineSlots.Clear();
if (isClear)
TmsCards_go.Clear();
TmsCards.Clear();
//Debug.Log("@@12-4");
//var jsonResult = await CombineJSON.GetJson_POST(Jk_URL.sb_cx, token);
//root_AllDevice = JsonConvert.DeserializeObject<DeviceQuery.Root>(jsonResult);
//StartCoroutine(
// CombineJSON.GetJson_POST(Jk_URL.sb_cx, token, (jsonResult) =>
// {
// root_AllDevice = JsonConvert.DeserializeObject<DeviceQuery.Root>(jsonResult);
// Debug.Log("设备查询完成" + "URL:" + Jk_URL.sb_cx + "Token:" + token + "返回内容" + jsonResult);
// })
//);
yield return StartCoroutine(
CombineJSON.GetJson_POST(Jk_URL.sb_cx, arguments.token, (jsonResult) =>
{
if (string.IsNullOrEmpty(jsonResult))
{
callback.Invoke(null);
}
try
{
root_AllDevice = JsonConvert.DeserializeObject<DeviceQuery.Root>(jsonResult);
Debug.Log("设备查询完成 :" + root_AllDevice);
Debug.Log("设备查询完成" /*+ "URL:" + Jk_URL.sb_cx + "Token:" + arguments.token + "返回内容" + jsonResult*/);
callback?.Invoke("1");
}
catch (Exception e)
{
Debug.LogWarning("序列化-设备查询错误:" + e.Message);
callback.Invoke(null);
}
})
); ;
}
/// <summary>
/// 查询所有端口
/// </summary>
/// <returns></returns>
public IEnumerator init_Port(Action<string> callback, bool isClear = true)
{
for (int i = 0; i < TmsPorts_go.Count; i++)
{
DestroyImmediate(TmsPorts_go[i]);
}
if (isClear)
TmsPorts_go.Clear();
TmsPorts.Clear();
//var jsonResult1 = await CombineJSON.GetJson_POST(Jk_URL.dk_cx, token);
//root_AllPort = JsonConvert.DeserializeObject<PortQuery.Root>(jsonResult1);
//StartCoroutine(
//CombineJSON.GetJson_POST(Jk_URL.dk_cx, token, (jsonResult1) =>
//{
// root_AllPort = JsonConvert.DeserializeObject<PortQuery.Root>(jsonResult1);
// Debug.Log("端口查询完成" + "URL:" + Jk_URL.dk_cx + "Token:" + token + "返回内容" + jsonResult1);
//})
//);
yield return StartCoroutine(
CombineJSON.GetJson_POST(Jk_URL.dk_cx, arguments.token, (jsonResult1) =>
{
if (string.IsNullOrEmpty(jsonResult1))
{
callback.Invoke(null);
}
try
{
root_AllPort = JsonConvert.DeserializeObject<PortQuery.Root>(jsonResult1);
Debug.Log("端口查询完成" /*+ "URL:" + Jk_URL.dk_cx + "Token:" + arguments.token + "返回内容" + jsonResult1*/);
callback?.Invoke("1");
}
catch (Exception e)
{
Debug.LogWarning("序列化-端口查询错误:" + e.Message);
callback.Invoke(null);
}
})
); ;
}
/// <summary>
/// 查询所有环境
/// </summary>
/// <returns></returns>
public IEnumerator init_ENV(Action<string> callback)
{
ENVs.Clear();
//var jsonResult2 = await CombineJSON.GetJson_POST(Jk_URL.hj_cx, token);
//root_AllENV = JsonConvert.DeserializeObject<ENVQuery.Root>(jsonResult2);
//StartCoroutine(
//CombineJSON.GetJson_POST(Jk_URL.hj_cx, token, (jsonResult2) =>
//{
// root_AllENV = JsonConvert.DeserializeObject<ENVQuery.Root>(jsonResult2);
// Debug.Log("环境查询完成" + "URL:" + Jk_URL.hj_cx + "Token:" + token + "返回内容" + jsonResult2);
//})
//);
yield return StartCoroutine(
CombineJSON.GetJson_POST(Jk_URL.hj_cx, arguments.token, (jsonResult2) =>
{
if (string.IsNullOrEmpty(jsonResult2))
{
callback.Invoke(null);
}
try
{
root_AllENV = JsonConvert.DeserializeObject<ENVQuery.Root>(jsonResult2);
ENVs.Clear();
Debug.Log("环境查询完成" /*+ "URL:" + Jk_URL.hj_cx + "Token:" + arguments.token + "返回内容" + jsonResult2*/);
callback?.Invoke("1");
}
catch (Exception e)
{
Debug.LogWarning("序列化-环境查询错误:" + e.Message);
}
})
);
}
/// <summary>
/// 查询所有告警
/// </summary>
/// <returns></returns>
public IEnumerator init_TmsAlarm(Action<string> callback)
{
Array.ForEach(GameObject.FindObjectsOfType<TmsAlarmQuery>(), itme =>
{
itme.tmsAlarmLists.Clear();
});
tmsAlarms.Clear();
//var jsonResult3 = await CombineJSON.GetJson_POST(Jk_URL.gj_cx, token);
//root_AllAlarm = JsonConvert.DeserializeObject<TmsAlarmQuery.Root>(jsonResult3);
//StartCoroutine(
//CombineJSON.GetJson_POST(Jk_URL.gj_cx, token, (jsonResult3) =>
//{
// root_AllAlarm = JsonConvert.DeserializeObject<TmsAlarmQuery.Root>(jsonResult3);
// Debug.Log("告警查询完成" + "URL:" + Jk_URL.gj_cx + "Token:" + token + "返回内容" + jsonResult3);
//})
//);
yield return StartCoroutine(
CombineJSON.GetJson_POST(Jk_URL.gj_cx, arguments.token, (jsonResult3) =>
{
if (string.IsNullOrEmpty(jsonResult3))
{
callback.Invoke(null);
}
else
{
try
{
//if (!string.IsNullOrEmpty(jsonResult3))
{
root_AllAlarm = JsonConvert.DeserializeObject<TmsAlarmQuery.Root>(jsonResult3);
if (root_AllAlarm.message == "操作成功")
{
Array.ForEach(GameObject.FindObjectsOfType<TmsAlarmQuery>(), itme =>
{
itme.tmsAlarmLists.Clear();
});
tmsAlarms.Clear();
Debug.Log("告警查询完成" /*+ "URL:" + Jk_URL.gj_cx + "Token:" + arguments.token + "返回内容" + jsonResult3*/);
callback?.Invoke(jsonResult3);
}
else
{
Debug.Log("告警查询失败:" + root_AllAlarm.message);
callback?.Invoke(null);
}
}
//else
//{
// callback?.Invoke(null);
//}
}
catch (Exception e)
{
Debug.LogWarning("序列化-告警查询错误:" + e.Message);
callback.Invoke(null);
}
}
})
);
}
IEnumerator LoadJSON(string url)
{
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success)
{
Debug.Log(www.error);
}
else
{
string jsonData = www.downloadHandler.text;
// 解析JSON数据
ParseJSON(jsonData);
}
}
void ParseJSON(string jsonString)
{
try
{
root_AllDevice = JsonConvert.DeserializeObject<DeviceQuery.Root>(jsonString);
}
catch
{
try
{
root_AllPort = JsonConvert.DeserializeObject<PortQuery.Root>(jsonString);
}
catch
{
try
{
root_AllAlarm = JsonConvert.DeserializeObject<TmsAlarmQuery.Root>(jsonString);
}
catch
{
try
{
root_AllENV = JsonConvert.DeserializeObject<ENVQuery.Root>(jsonString);
}
catch
{
}
}
}
}
}
/// <summary>
/// 获取层级
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public int CengJi(string s)
{
int cj = 0;
switch (s)
{
case "A":
cj = 0;
break;
case "B":
cj = 1;
break;
case "C":
cj = 2;
break;
case "D":
cj = 3;
break;
case "E":
cj = 4;
break;
case "F":
cj = 5;
break;
case "G":
cj = 6;
break;
case "H":
cj = 7;
break;
case "I":
cj = 8;
break;
default:
break;
}
return cj;
}
/// <summary>
/// 根据配置生成线缆
/// </summary>
[ContextMenu("根据配置生成线缆")]
public void FindPortPos()
{
var pqs = Array.FindAll(GameObject.FindObjectsOfType<PortQuery>(), itme =>
{
PortQuery pq = itme.GetComponent<PortQuery>();
if (!string.IsNullOrEmpty(pq.portList.id))
return true;
else
return false;
//return true;
})/*.Select(item => item.gameObject).ToArray()*/;
var P_list = FindObjectGroups(pqs.ToList());
CreateLine createLine = PatternChoose.Inst.huaXian.GetComponent<CreateLine>();
createLine.list7.Clear();
foreach (var item in P_list)
{
createLine.list7.Add(item[0].transform);
createLine.list7.Add(item[1].transform);
}
createLine.F7();
}
public List<List<PortQuery>> FindObjectGroups(List<PortQuery> objects)
{
List<List<PortQuery>> objectGroups = new List<List<PortQuery>>();
for (int i = 0; i < objects.Count; i++)
{
PortQuery objectA = objects[i];
for (int j = i + 1; j < objects.Count; j++)
{
PortQuery objectB = objects[j];
if (objectA.portList.conDevice == objectB.portList.deviceId && objectA.portList.port == objectB.portList.conPort &&
objectB.portList.conDevice == objectA.portList.deviceId && objectB.portList.port == objectA.portList.conPort)
{
bool isDuplicate = false;
foreach (List<PortQuery> group in objectGroups)
{
if (group.Contains(objectA) || group.Contains(objectB))
{
isDuplicate = true;
break;
}
}
if (!isDuplicate)
{
List<PortQuery> newGroup = new List<PortQuery>();
newGroup.Add(objectA);
newGroup.Add(objectB);
objectGroups.Add(newGroup);
}
}
}
}
return objectGroups;
}
public void AssignFields<T, U>(T target, U source)
{
Type typeTarget = typeof(T);
Type typeSource = typeof(U);
PropertyInfo[] propertiesTarget = typeTarget.GetProperties();
PropertyInfo[] propertiesSource = typeSource.GetProperties();
foreach (PropertyInfo propertyTarget in propertiesTarget)
{
PropertyInfo propertySource = Array.Find(propertiesSource, p => p.Name == propertyTarget.Name);
if (propertySource != null)
{
object propertyValue = propertySource.GetValue(source);
propertyTarget.SetValue(target, propertyValue);
}
}
}
/// <summary>
/// 显示机柜容量
/// </summary>
[ContextMenu("显示机柜容量")]
public void DisplayCapacity(Toggle t)
{
GameObject go;
if (!t.isOn)
{
CloseHighlight();
return;
}
//CloseHighlight();
Color c1 = new Color(1, 109f / 255, 0, 1);//小
Color c2 = new Color(1, 240f / 255, 0, 1);
Color c3 = new Color(1, 168f / 255, 0, 1);
Color c4 = new Color(112f / 255, 240f / 255, 73f / 255, 1);// 大
for (int i = 0; i < Cabinets_go.Count; i++)
{
var D = Cabinets_go[i].GetComponent<DeviceQuery>().deviceList;
//var H = Cabinets_go[i].GetComponent<HighlightEffect>();
//try
//{
// go = Cabinets_go[i].transform.Find(Cabinets_go[i].name).gameObject;
//}
//catch (Exception)
//{
// go = Cabinets_go[i];
//}
//var M = go.GetComponent<Renderer>().materials[0];
//var M_old = Cabinets_go[i].GetComponent<TransparentGlow>().empty[0];
//var M_new = new Material(M_old);
var hight = Cabinets_go[i].transform.Find("高亮").gameObject;
if (string.IsNullOrEmpty(D.residueNum)) continue;
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.25f))
{
//M_new.SetColor(c1);
//ChangeMaterialColor(go, 0, c1);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/1Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.5f))
{
// M_new.color = c2;
//ChangeMaterialColor(go, 0, c2);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/2Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.75f))
{
//M_new.color = c3;
//ChangeMaterialColor(go, 0, c3);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42))
{
//M_new.color = c4;
//ChangeMaterialColor(go, 0, c4);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/4Tou");
}
}
}
/// <summary>
/// 显示机柜容量
/// </summary>
/// <param name="t"></param>
public void DisplayCapacity(bool t)
{
GameObject go;
if (!t)
{
CloseHighlight();
return;
}
//CloseHighlight();
Color c1 = new Color(1, 109f / 255, 0, 1);//小
Color c2 = new Color(1, 240f / 255, 0, 1);
Color c3 = new Color(1, 168f / 255, 0, 1);
Color c4 = new Color(112f / 255, 240f / 255, 73f / 255, 1);// 大
for (int i = 0; i < Cabinets_go.Count; i++)
{
var D = Cabinets_go[i].GetComponent<DeviceQuery>().deviceList;
if (D.rackType == "2")
continue;
//var H = Cabinets_go[i].GetComponent<HighlightEffect>();
try
{
go = Cabinets_go[i].transform.Find(Cabinets_go[i].name).gameObject;
}
catch (Exception)
{
go = Cabinets_go[i];
}
//var M = go.GetComponent<Renderer>().materials[0];
//var M_old = Cabinets_go[i].GetComponent<TransparentGlow>().empty[0];
//var M_new = new Material(M_old);
var hight = Cabinets_go[i].transform.Find("高亮").gameObject;
if (string.IsNullOrEmpty(D.residueNum)) continue;
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.25f))
{
//M_new.SetColor(c1);
//ChangeMaterialColor(go, 0, c1);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/1Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.5f))
{
// M_new.color = c2;
//ChangeMaterialColor(go, 0, c2);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/2Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42 * 0.75f))
{
//M_new.color = c3;
//ChangeMaterialColor(go, 0, c3);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
}
else if (Convert.ToSingle(D.residueNum) <= (42))
{
//M_new.color = c4;
//ChangeMaterialColor(go, 0, c4);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/4Tou");
}
}
}
/// <summary>
/// 关闭高亮
/// </summary>
[ContextMenu("关闭高亮")]
public void CloseHighlight()
{
//GameObject go;
for (int i = 0; i < Cabinets_go.Count; i++)
{
// try
// {
// go = Cabinets_go[i].transform.Find(Cabinets_go[i].name).gameObject;
// }
// catch (Exception)
// {
// go = Cabinets_go[i];
// }
// ChangeMaterialColor(go, 0, new Color(1, 1, 1, 1));
var hight = Cabinets_go[i].transform.Find("高亮").gameObject;
hight.SetActive(false);
}
}
/// <summary>
/// 显示柜门状态
/// </summary>
public void DoorCondition()
{
CloseHighlight();
//Color c = new Color(108f / 255, 221f / 255, 239f / 255, 1);
for (int i = 0; i < Cabinets_go.Count; i++)
{
var D = Cabinets_go[i].GetComponent<DeviceQuery>().deviceList;
var hight = Cabinets_go[i].transform.Find("高亮").gameObject;
//var H = Cabinets_go[i].GetComponent<HighlightEffect>();
//前门
if (!string.IsNullOrEmpty(D.openFlag))
{
if (D.openFlag == "0")
{
//关
power_close(Cabinets_go[i], "前门");
}
else if (D.openFlag == "1")
{
power_open(Cabinets_go[i], "前门");
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
continue;
//开
GameObject go = null;
try
{
go = Cabinets_go[i].transform.Find(Cabinets_go[i].name).gameObject;//有门的
}
catch (Exception)
{
go = Cabinets_go[i];//无门的
}
if (go)
{
//ChangeMaterialColor(go, 0, c);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
power_open(Cabinets_go[i], "前门");
}
//var door = Array.Find(Cabinets_go[i].transform.GetComponentsInChildren<Renderer>(), item =>
//{
// return item.name.Contains("Object");
//});
//if (door)
// door.transform.localRotation = Quaternion.Euler(Vector3.forward * -90);
}
}
//后门
if (!string.IsNullOrEmpty(D.backDoorFlag))
{
if (D.backDoorFlag == "0")
{
power_close(Cabinets_go[i], "后门");
continue;
//模型原因微调
if (Cabinets_go[i].name == "R72") return;
//关
power_close(Cabinets_go[i], "后门");
}
else if (D.backDoorFlag == "1")
{
power_open(Cabinets_go[i], "后门");
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
continue;
//模型原因微调
if (Cabinets_go[i].name == "R72") return;
//开
GameObject go = null;
try
{
go = Cabinets_go[i].transform.Find(Cabinets_go[i].name).gameObject;//有门的
}
catch (Exception)
{
go = Cabinets_go[i];//无门的
}
if (go)
{
//ChangeMaterialColor(go, 0, c);
hight.SetActive(true);
hight.GetComponent<Renderer>().material = Resources.Load<Material>("Materials/3Tou");
power_open(Cabinets_go[i], "后门");
}
}
}
if (D.backDoorFlag == "0" && D.openFlag == "0")
hight.SetActive(false);
}
}
/// <summary>
/// 关门
/// </summary>
public void power_close()
{
#region old
//for (int i = 0; i < Cabinets_go.Count; i++)
//{
// //var door = Array.FindAll(Cabinets_go[i].transform.GetComponentsInChildren<Renderer>(), item =>
// //{
// // return item.name.Contains("Object");
// //});
// if (/*door.Length == 4 && */Cabinets_go[i].name == "R71")
// {
// //Cabinets_go[i].transform.GetChild(0).localRotation = Quaternion.Euler(Vector3.zero);
// //Cabinets_go[i].transform.GetChild(1).localRotation = Quaternion.Euler(Vector3.zero);
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// Cabinets_go[i].transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
// Cabinets_go[i].transform.GetChild(2).DOLocalRotate(Vector3.zero, 2);
// Cabinets_go[i].transform.GetChild(3).DOLocalRotate(Vector3.zero, 2);
// }
// //模型原因微调
// else if (Cabinets_go[i].name == "R72")
// {
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// Cabinets_go[i].transform.GetChild(1).DOLocalRotate(Vector3.forward * -180, 2);
// }
// else /*if (door.Length == 2)*/
// {
// //door.transform.localRotation = Quaternion.Euler(Vector3.zero);
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// Cabinets_go[i].transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
// }
//}
////CloseHighlight();
#endregion
for (int i = 0; i < roomDoors.Count; i++)
{
if (roomDoors[i].is_open)
roomDoors[i].DoorClose(true);
}
}
/// <summary>
/// 开门
/// </summary>
public void power_open()
{
#region old
//for (int i = 0; i < Cabinets_go.Count; i++)
//{
// //var door = Array.FindAll(Cabinets_go[i].transform.GetComponentsInChildren<Renderer>(), item =>
// //{
// // return item.name.Contains("Object");
// //});
// if (/*door.Length == 4 && */Cabinets_go[i].name == "R71")
// {
// //Cabinets_go[i].transform.GetChild(0).localRotation = Quaternion.Euler(Vector3.forward * -90);
// //Cabinets_go[i].transform.GetChild(1).localRotation = Quaternion.Euler(Vector3.forward * 90);
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// Cabinets_go[i].transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// //模型原因微调
// else if (Cabinets_go[i].name == "R72")
// {
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// Cabinets_go[i].transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// else /*if (door.Length == 2)*/
// {
// //door.transform.localRotation = Quaternion.Euler(Vector3.forward * -90);
// //door.transform.DOLocalRotate(Vector3.forward * -90, 2f);
// Cabinets_go[i].transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// }
//}
//CloseHighlight();
#endregion
for (int i = 0; i < roomDoors.Count; i++)
{
if (!roomDoors[i].is_open)
roomDoors[i].DoorOpen(true);
}
}
/// <summary>
/// 开门(单个)
/// </summary>
/// <param name="cabinet"></param>
public void power_open(GameObject cabinet, string type)
{
#region old
//if (type == "前门")
//{
// if (/*door.Length == 4 && */cabinet.name == "R71")
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// else /*if (door.Length == 2)*/
// //door.transform.localRotation = Quaternion.Euler(Vector3.forward * -90);
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
//}
//else if (type == "后门")
//{
// if (/*door.Length == 4 && */cabinet.name == "R71")
// {
// cabinet.transform.GetChild(2).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(3).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// //模型原因微调
// else if (cabinet.name == "R72")
// {
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// else /*if (door.Length == 2)*/
// //door.transform.localRotation = Quaternion.Euler(Vector3.forward * -90);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * -90, 2f);
//}
//else if (type == "全开")
//{
// if (/*door.Length == 4 && */cabinet.name == "R71")
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// cabinet.transform.GetChild(2).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(3).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// //模型原因微调
// else if (cabinet.name == "R72")
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * 90, 2f);
// }
// else /*if (door.Length == 2)*/
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.forward * -90, 2f);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * -90, 2f);
// }
//}
#endregion
var doors = cabinet.GetComponentsInChildren<RoomDoor>(true);
if (doors.Length <= 0) return;
if (type == "前门")
{
if (doors.Length > 2)
{
cabinet.transform.GetChild(0).GetComponent<RoomDoor>().DoorOpen(true);
cabinet.transform.GetChild(1).GetComponent<RoomDoor>().DoorOpen(true);
}
else
{
cabinet.transform.GetChild(0).GetComponent<RoomDoor>().DoorOpen(true);
}
}
else if (type == "后门")
{
if (doors.Length > 2)
{
cabinet.transform.GetChild(2).GetComponent<RoomDoor>().DoorOpen(true);
cabinet.transform.GetChild(3).GetComponent<RoomDoor>().DoorOpen(true);
}
else
{
cabinet.transform.GetChild(1).GetComponent<RoomDoor>().DoorOpen(true);
}
}
else if (type == "全开")
{
for (int i = 0; i < doors.Length; i++)
{
doors[i].DoorOpen(true);
}
}
}
/// <summary>
/// 关门(单个)
/// </summary>
/// <param name="cabinet"></param>
public void power_close(GameObject cabinet, string type)
{
#region old
////var door = Array.FindAll(cabinet.GetComponentsInChildren<Renderer>(), item =>
////{
//// return item.name.Contains("Object");
////});
//if (type == "前门")
//{
// if (/*door.Length == 4 && */cabinet.name == "R71")
// {
// //cabinet.transform.GetChild(0).localRotation = Quaternion.Euler(Vector3.zero);
// //cabinet.transform.GetChild(1).localRotation = Quaternion.Euler(Vector3.zero);
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
// }
// else/* (door.Length == 2)*/
// //door.transform.localRotation = Quaternion.Euler(Vector3.zero);
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
//}
//else if (type == "后门")
//{
// if (/*door.Length == 4 && */cabinet.name == "R71")
// {
// cabinet.transform.GetChild(2).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(3).DOLocalRotate(Vector3.zero, 2);
// }
// //模型原因微调
// else if (cabinet.name == "R72")
// {
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * -180, 2);
// }
// else /*if (door.Length == 2)*/
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
//}
//else if (type == "全关")
//{
// if (cabinet.name == "R71")
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(2).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(3).DOLocalRotate(Vector3.zero, 2);
// }
// //模型原因微调
// else if (cabinet.name == "R72")
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.forward * -180, 2);
// }
// else
// {
// cabinet.transform.GetChild(0).DOLocalRotate(Vector3.zero, 2);
// cabinet.transform.GetChild(1).DOLocalRotate(Vector3.zero, 2);
// }
//}
#endregion
var doors = cabinet.GetComponentsInChildren<RoomDoor>(true);
if (doors.Length <= 0) return;
if (type == "前门")
{
if (doors.Length > 2)
{
cabinet.transform.GetChild(0).GetComponent<RoomDoor>().DoorClose(true);
cabinet.transform.GetChild(1).GetComponent<RoomDoor>().DoorClose(true);
}
else
{
cabinet.transform.GetChild(0).GetComponent<RoomDoor>().DoorClose(true);
}
}
else if (type == "后门")
{
if (doors.Length > 2)
{
cabinet.transform.GetChild(2).GetComponent<RoomDoor>().DoorClose(true);
cabinet.transform.GetChild(3).GetComponent<RoomDoor>().DoorClose(true);
}
else
{
cabinet.transform.GetChild(1).GetComponent<RoomDoor>().DoorClose(true);
}
}
else if (type == " 全开")
{
for (int i = 0; i < doors.Length; i++)
{
doors[i].DoorClose(true);
}
}
}
/// <summary>
/// 变色
/// </summary>
/// <param name="go"></param>
/// <param name="materialIndex"></param>
/// <param name="newColor"></param>
public void ChangeMaterialColor(GameObject go, int materialIndex, Color newColor)
{
MeshRenderer renderer = go.GetComponent<MeshRenderer>();
// 获取当前材质球数组
Material[] materials = renderer.materials;
// 确保 materialIndex 在有效范围内
if (materialIndex >= 0 && materialIndex < materials.Length)
{
// 创建新的材质球数组
Material[] newMaterials = materials.Clone() as Material[];
// 更改特定索引位置的材质球颜色
newMaterials[materialIndex].color = newColor;
// 将新的材质球数组赋值给 MeshRenderer
renderer.materials = newMaterials;
}
}
/// <summary>
/// 变色
/// </summary>
/// <param name="go"></param>
/// <param name="materialIndex"></param>
/// <param name="newColor"></param>
public void ChangeMaterialColor(GameObject go, int index)
{
var hight = go.transform.Find("高亮").gameObject;
Material material = null;
switch (index)
{
case 1:
material = Resources.Load<Material>("Materials/1Tou");
break;
case 2:
material = Resources.Load<Material>("Materials/2Tou");
break;
case 3:
material = Resources.Load<Material>("Materials/3Tou");
break;
case 4:
material = Resources.Load<Material>("Materials/4Tou");
break;
default:
break;
}
hight.GetComponent<Renderer>().material = material;
hight.SetActive(true);
//Renderer renderer = hight.GetComponent<Renderer>();
//Material[] sharedMaterials = renderer.sharedMaterials;
////for (int i = 0; i < sharedMaterials.Length; i++)
////{
//// sharedMaterials[i] = newMaterial;
////}
//sharedMaterials[0] = material;
//renderer.sharedMaterials = sharedMaterials;
}
private void OnDisable()
{
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.End))
{
init();
}
}
public void init()
{
if (!nowCabine && nowCabine != null && !objectToShow_add)
{
var serarch1 = objectToShow_add.GetComponent<SearchName1>();
var drag = serarch1.dragController;
drag.uPosManger = nowCabine.transform.Find("U位").GetComponent<UPosManger>();
}
Array.ForEach(pop_ups.ToArray(), (itme) =>
{
itme.gameObject.SetActive(false);
});
StartCoroutine(LoadAddress((ct) =>
{
if (ct != null)
{
Jk_URL = new webURL(ct);
StartCoroutine(Initialize((x) =>
{
if (string.IsNullOrEmpty(x))
{
SecondConfirmPanel.DeleteConform(null, "进入场景失败");
Debug.Log("接口获取数据失败(手动-初始化失败)");
LoadScene();
}
}));
}
else
{
Debug.Log("获取地址错误!");
}
}));
}
/// <summary>
/// 递增寻找父物体
/// </summary>
/// <param name="gameObject"></param>
/// <param name="condition"></param>
/// <returns></returns>
public GameObject FindParent(GameObject gameObject, System.Predicate<GameObject> condition)
{
if (gameObject == null)
return null;
if (condition(gameObject))
return gameObject;
Transform parent = gameObject.transform.parent;
while (parent != null)
{
if (condition(parent.gameObject))
{
return parent.gameObject;
}
parent = parent.parent;
}
return null;
}
/// <summary>
/// 条件--机柜
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsDesiredParent(GameObject go)
{
DeviceQuery d = go.GetComponent<DeviceQuery>();
return (d != null && d.deviceList.type == "1");
}
/// <summary>
/// 条件--UPosManger
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindParent_UPosManger(GameObject go)
{
UPosManger d = go.GetComponent<UPosManger>();
return (d != null);
}
/// <summary>
/// 条件-机框
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindRacks_go(GameObject go)
{
DeviceQuery d = go.GetComponent<DeviceQuery>();
return (d != null && d.deviceList.type == "2" && d.deviceList.deviceType == "1");
}
/// <summary>
/// 条件--机框或机槽
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindRacks_goORMachineSlots_go(GameObject go)
{
DeviceQuery d = go.GetComponent<DeviceQuery>();
return (d != null && d.deviceList.type == "2" && (d.deviceList.deviceType == "1" || d.deviceList.deviceType == "2"));
}
/// <summary>
/// 条件--机框或机槽或板卡
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindRacks_goORMachineSlots_goORTmsCards_go(GameObject go)
{
DeviceQuery d = go.GetComponent<DeviceQuery>();
return (d != null && d.deviceList.type == "2" && (d.deviceList.deviceType == "1" || d.deviceList.deviceType == "2" || d.deviceList.deviceType == "3"));
}
/// <summary>
/// 条件--UPosItem
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindUposItem(GameObject go)
{
UPosItem uPosItem = go.GetComponent<UPosItem>();
return (uPosItem != null);
}
/// <summary>
/// 条件--LineGroupItem
/// </summary>
/// <param name="go"></param>
/// <returns></returns>
public bool IsFindLineGroupItem(GameObject go)
{
LineGroupItem lineGroupItem = go.GetComponent<LineGroupItem>();
return (lineGroupItem != null);
}
// 读取地址
public IEnumerator LoadAddress(Action<string> callback)
{
#region UnityWebRequest读取
string filePath = Application.streamingAssetsPath + "/dz.txt";
UnityWebRequest www = UnityWebRequest.Get(filePath);
DownloadHandlerBuffer dH = new DownloadHandlerBuffer();
www.downloadHandler = dH;
//www.timeout = 15;
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.Success)
{
// 等待一帧
yield return null;
// 检查请求是否已完成
while (!www.isDone)
{
yield return null;
}
string fileContent = www.downloadHandler.text;
if (string.IsNullOrEmpty(fileContent))
{
callback(null);
}
else
{
Debug.Log("获取穿透成功");
callback(fileContent);
}
}
else
{
Debug.LogError("获取穿透失败: " + www.error);
callback(null);
}
#endregion
//yield return 1;
//callback("http://192.168.41.106:8081/");
}
// 获取接口信息
public IEnumerator Initialize(Action<string> callback = null, bool isInFo = false)
{
portCloseFlashing();
yield return null;
//Debug.Log("@@10");
isLoading = false;
//Debug.Log("@@11");
//TransparentGlowManage.Inst.addScript();
//Debug.Log("@@12");
/*yield return */
#region
//if (isInFo)
//{
// StartCoroutine(init_Device((x) =>
// {
// if (!string.IsNullOrEmpty(x))
// {
// StartCoroutine(init_Port((y) =>
// {
// if (!string.IsNullOrEmpty(y))
// {
// //callback?.Invoke("1");
// StartCoroutine(LineQuery.Inst.getJsonCoroutine((z) =>
// {
// if (z != null)
// {
// StartCoroutine(PatternChoose.Inst.xianlan.getByCode((v) =>
// {
// if (!string.IsNullOrEmpty(v))
// {
// callback?.Invoke("1");
// }
// else
// {
// Debug.Log("查询线路类型错误 @@");
// callback.Invoke(null);
// }
// }));
// }
// else
// {
// Debug.Log("查询线缆组错误 @@");
// callback.Invoke(null);
// }
// }));
// }
// else
// {
// Debug.Log("查询端口错误 @@");
// callback.Invoke(null);
// }
// }, false));
// }
// else
// {
// Debug.Log("查询设备错误 @@");
// callback.Invoke(null);
// }
// }, false));
//}
//else
#endregion
StartCoroutine(init_Device((x) =>
{
Debug.Log("@@1");
if (!string.IsNullOrEmpty(x))
{
Debug.Log("@@2");
StartCoroutine(init_Port((y) =>
{
Debug.Log("@@3");
if (!string.IsNullOrEmpty(y))
{
Debug.Log("@@4");
LineGroupManager.Instance.Empty_line_content_left();
LineGroupManager.Instance.Empty_line_content_right();
int? a = LineGroupManager.Instance.line_group_content.transform.childCount;
StartCoroutine(LineQuery.Inst.getJsonCoroutine((u, z) =>
{
if (u)
{
Debug.Log("@@5");
StartCoroutine(PatternChoose.Inst.xianlan.getByCode((v) =>
{
Debug.Log("@@5.1");
if (!string.IsNullOrEmpty(v))
{
LoadScene();
callback?.Invoke("1");
}
else
{
Debug.Log("查询线路类型错误 @@5.1");
callback.Invoke(null);
}
}));
}
else
{
Debug.Log("查询线缆组错误 @@4:" + z);
callback.Invoke(null);
}
}));
}
else
{
Debug.Log("查询端口错误 @@3");
callback.Invoke(null);
}
}));
}
else
{
Debug.Log("查询设备错误 @@1");
callback.Invoke(null);
//callback?.Invoke("1");
}
}));
//Debug.Log("@@13");//???
//yield return StartCoroutine(init_Port());
//Debug.Log("@@14");
//yield return StartCoroutine(init_TmsAlarm());
//yield return StartCoroutine(init_ENV());
//yield return StartCoroutine(LineQuery.Inst.getJsonCoroutine());
//Debug.Log("@@15");
//LoadScene();
}
// 加载场景
public void LoadScene()
{
Debug.Log("@@5.2");
Array.ForEach(GameManager.Inst.pop_ups.ToArray(), (itme) =>
{
itme.gameObject.SetActive(false);
});
Debug.Log("@@5.3");
// 加载场景
Load_Device();
Debug.Log("@@5.4");
Load_Port();
//Load_TmsAlarm();
//Load_ENV();
Debug.Log("@@6");
TransparentGlowManage.Inst.addScript();
Debug.Log("@@7");
LineGroupManager.Instance.addxianlan();
Debug.Log("@@8");
for (int i = 0; i < Cabinets_go.Count; i++)
{
Cabinets_go[i].GetComponent<TransparentGlow>().OnSceneReloaded();
}
Debug.Log("@@9");
//三维场景加载时显示地图
Application.ExternalCall("OnSceneLoaded", "三维加载完成");
Debug.Log("@@10 三维加载完成");
isLoading = true;
if (CabinetUIManager.Instance.current_menu == Menu.M_数字机房_线缆连接_配置)
{
for (int i = 0; i < TmsPorts_go.Count; i++)
{
var g = FindParent(TmsPorts_go[i], IsDesiredParent);
if (g && g.activeSelf)
{
var p = TmsPorts_go[i].GetComponent<PortQuery>();
p.hight.SetActive(true);
if (!string.IsNullOrEmpty(p.portList.conDevice))
WebInteraction.Inst.changC(p.hight, "1");
}
}
if (transform)
{
}
}
else if (magnifyState && CabinetUIManager.Instance.current_menu == Menu.M_数字机房_场景管理)
{
search_box.SetActive(true);
}
//StartCoroutine(CombineJSON.ReadLocalText(Path.Combine(Application.streamingAssetsPath, "localVideoConfiguration.txt"), (_error, _json) =>
//{
StartCoroutine(CombineJSON.GetJson_GET(Jk_URL.bdsp, arguments.token, (x) =>
{
Debug.Log("订阅本地视频:" + x);
}));
//}));
//if (magnifyState)
//{
// openCap();
//}
//Debug.Log("@@16");
}
/// <summary>
/// 模型微调(打开前盖)
/// </summary>
/// <param name="isZoomin">是否为放大状态</param>
public void openCap()
{
for (int i = 0; i < GameManager.Inst.Racks_go.Count; i++)
{
if (!GameManager.Inst.Racks_go[i].activeSelf)
continue;
if (GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "6" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "7" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "20" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "21" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "91" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "92" ||
GameManager.Inst.Racks_go[i].GetComponent<DeviceQuery>().deviceList.modelNum == "93")
//GameManager.Inst.Racks_go[i].transform.Find("前盖").gameObject.SetActive(false);
GameManager.Inst.Racks_go[i].transform.Find("前盖").GetChild(0).DOLocalRotate(Vector3.zero, 1);
}
}
/// <summary>
/// 模型错误微调
/// </summary>
/// <param name="modelNum"></param>
/// <param name="go"></param>
public void Model_error(string modelNum, GameObject go)
{
if (modelNum == "14" || modelNum == "15" || modelNum == "83")
{
MoveParentAndChildren(go.transform, new Vector3(-0.25f, 0, 0), false);
}
else if (modelNum == "1")
{
MoveParentAndChildren(go.transform, new Vector3(-0.25f, -0.0835f, 0), false);
}
else if (modelNum == "2")
{
MoveParentAndChildren(go.transform, new Vector3(0.056f, -0.0835f, 0), false);
}
else if (modelNum == "4")
{
//MoveParentAndChildren(go.transform, new Vector3(-0.31f, 0, 0.1575f), false);
MoveParentAndChildren(go.transform, new Vector3(-0.244f, 0.1575f, 0), false);
}
else if (modelNum == "18")
{
MoveParentAndChildren(go.transform, new Vector3(-0.31f, 0, 0), false);
}
else if (modelNum == "19")
{
//MoveParentAndChildren(go.transform, new Vector3(-0.27f, 0f, -0), false);
go.transform.localPosition = Vector3.zero;
MoveParentAndChildren(go.transform, new Vector3(0, 0.022f, 0), false);
}
else if (modelNum == "24" || modelNum == "34")
{
MoveParentAndChildren(go.transform, new Vector3(-0.4f, 0f, -0), false);
}
else if (modelNum == "6" || modelNum == "7" || modelNum == "20" || modelNum == "21" || modelNum == "91" || modelNum == "92" || modelNum == "93")
{
MoveParentAndChildren(go.transform, new Vector3(-0.163f, 0, 0), false);
}
else if (modelNum == "36")
{
MoveParentAndChildren(go.transform, new Vector3(-0.248f, 0, 0), false);
}
else if (modelNum == "37" || modelNum == "41")
{
//MoveParentAndChildren(go.transform, new Vector3(0, 0.0685f, 0), false);
//MoveParentAndChildren(go.transform, new Vector3(0, 0f, -0), false);
}
else if (modelNum == "55")
{
MoveParentAndChildren(go.transform, new Vector3(-0.283f, 0f, 0f), false);
}
else if (modelNum == "77")
{
MoveParentAndChildren(go.transform, new Vector3(-0.208f, 0f, 0f), false);
}
else if (modelNum == "81")
{
MoveParentAndChildren(go.transform, new Vector3(-0.17f, 0f, 0f), false);
}
else if (modelNum == "86")
{
MoveParentAndChildren(go.transform, new Vector3(-0.212f, 0f, 0f), false);
}
else if (modelNum == "95" || modelNum == "96" || modelNum == "97")
{
MoveParentAndChildren(go.transform, new Vector3(-0.09f, 0, 0), false);
}
else if (modelNum == "98")
{
MoveParentAndChildren(go.transform, new Vector3(-0.258f, 0, 0), false);
}
else if (modelNum == "99")
{
MoveParentAndChildren(go.transform, new Vector3(-0.313f, 0, 0), false);
}
else if (modelNum == "100" || modelNum == "101")
{
MoveParentAndChildren(go.transform, new Vector3(-0.233f, 0, 0), false);
}
}
/// <summary>
/// 微调模型移动
/// </summary>
public void MoveParentAndChildren(Transform parentTransform, Vector3 moveDistance, bool ismove_child = true)
{
// 移动父物体
parentTransform.position += moveDistance;
if (!ismove_child)
return;
// 移动所有子物体
foreach (Transform childTransform in parentTransform)
{
childTransform.position += moveDistance;
}
}
/// <summary>
/// 滑动UI自适应高度
/// </summary>
/// <param name="popup"></param>
/// <param name="content"></param>
/// <param name="content_ret"></param>
/// <param name="content_grid"></param>
public void AdaptiveHight(GameObject popup, Transform content, RectTransform content_ret, GridLayoutGroup content_grid)
{
//var content_ret= content.GetComponent<RectTransform>();
//var content_grid = content.GetComponent<GridLayoutGroup>();
if (popup.activeSelf)
{
float x = content_ret.sizeDelta.x;
float y = content_grid.padding.top + content.childCount * content_grid.cellSize.y + (content.childCount - 1) * content_grid.spacing.y;
content_ret.sizeDelta = new Vector2(x, y);
}
}
/// <summary>
/// 移除空元素
/// </summary>
public void RemoveEmptyElements()
{
Array.ForEach(Racks_go.ToArray(), (item) =>
{
if (item == null)
Racks_go.Remove(item);
});
Array.ForEach(MachineSlots_go.ToArray(), (item) =>
{
if (item == null)
MachineSlots_go.Remove(item);
});
Array.ForEach(TmsCards_go.ToArray(), (item) =>
{
if (item == null)
TmsCards_go.Remove(item);
});
Array.ForEach(TmsPorts_go.ToArray(), (item) =>
{
if (item == null)
TmsPorts_go.Remove(item);
});
}
private Coroutine stopCor_1;
/// <summary>
/// 开启端口闪烁
/// </summary>
/// <param name="port1"></param>
/// <param name="port2"></param>
public void portOpenFlashing(GameObject port1, GameObject port2)
{
//return;
stopCor_1 = StartCoroutine(OpenFlashing(port1, port2));
}
IEnumerator OpenFlashing(GameObject port1, GameObject port2)
{
GameObject H1 = port1.GetComponent<PortQuery>().hight;
GameObject H2 = port2.GetComponent<PortQuery>().hight;
H1.SetActive(true);
H2.SetActive(true);
//ClickEventLens clickEventLens = new ClickEventLens();
while (true)
{
WebInteraction.Inst.changC(H1, "4");
WebInteraction.Inst.changC(H2, "4");
yield return new WaitForSeconds(0.75f);
WebInteraction.Inst.changC(H1, "1");
WebInteraction.Inst.changC(H2, "1");
yield return new WaitForSeconds(0.75f);
}
}
/// <summary>
/// 关闭端口闪烁
/// </summary>
public void portCloseFlashing()
{
if (stopCor_1 != null)
StopCoroutine(stopCor_1);
}
/// <summary>
/// 接口地址
/// </summary>
[System.Serializable]
public class webURL
{
/// <summary>
/// 设备-查询URL
/// </summary>
[Header("设备-查询URL")] public string sb_cx;
/// <summary>
/// 设备-新增URL
/// </summary>
[Header("设备-新增URL")] public string sb_xz;
/// <summary>
/// 设备-删除URL
/// </summary>
[Header("设备-删除URL")] public string sb_sc;
/// <summary>
/// 设备-编辑URL
/// </summary>
[Header("设备-编辑URL")] public string sb_bj;
/// <summary>
/// 端口-查询URL
/// </summary>
[Header("端口-查询URL")] public string dk_cx;
/// <summary>
/// 端口-新增URL
/// </summary>
[Header("端口-新增URL")] public string dk_xz;
/// <summary>
/// 端口-删除URL
/// </summary>
[Header("端口-删除URL")] public string dk_sc;
/// <summary>
/// 端口-编辑URL
/// </summary>
[Header("端口-编辑URL")] public string dk_bj;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 环境-查询URL
/// </summary>
[Header("环境-查询URL")] public string hj_cx;
/// <summary>
/// 告警-查询URL
/// </summary>
[Header("告警-查询URL")] public string gj_cx;
/// <summary>
/// 工作票-查询URL
/// </summary>
[Header("工作票-查询URL")] public string gzp_cx;
/// <summary>
/// 检修票-查询URL
/// </summary>
[Header("检修票-查询URL")] public string jxp_cx;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 线缆-删除URL
/// </summary>
[Header("线缆-删除URL")] public string xl_sc;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 线缆组-查询URL
/// </summary>
[Header("线缆组-查询URL")] public string xlz_cx;
/// <summary>
/// 线缆组-新增URL
/// </summary>
[Header("线缆组-新增URL")] public string xlz_xz;
/// <summary>
/// 线缆组-删除URL
/// </summary>
[Header("线缆组-删除URL")] public string xlz_sc;
/// <summary>
/// 线缆组-编辑URL
/// </summary>
[Header("线缆组-编辑URL")] public string xlz_bj;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 线路类型-查询URL
/// </summary>
[Header("线路类型-查询URL")] public string xllx_cx;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 菜单权限-查询URL
/// </summary>
[Header("菜单权限-查询URL")] public string cdqx_cx;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 红外监测详情-查询URL
/// </summary>
[Header("红外监测详情-查询URL")] public string hwjc_cx;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 机器人保存指令URL
/// </summary>
[Header("机器人保存指令URL")] public string jqr_bczl;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 机器人保存坐标URL
/// </summary>
[Header("机器人保存坐标URL")] public string jqr_bczb;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 机器人返回筛选-查询URL
/// </summary>
[Header("机器人返回筛选-查询URL")] public string jqr_xj_cx;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 机器人返回图片保存接口
/// </summary>
[Header("机器人返回图片保存接口")] public string jqr_bctp;
/*----------------------------------------------------------------------------------*/
/// <summary>
/// 本地视频接口
/// </summary>
[Header("本地视频")] public string bdsp;
public webURL(string ct)
{
//string initialCt = ct;
ct = ct + "machineRoom/";
//string ct = "http://fpt9gx.natappfree.cc/";
sb_cx = ct + "device/queryList";
sb_xz = ct + "device/save";
sb_sc = ct + "device/delete";
sb_bj = ct + "device/updateById";
dk_cx = ct + "port/queryList";
dk_xz = ct + "port/save";
dk_sc = ct + "port/delete";
dk_bj = ct + "port/updateById";
hj_cx = ct + "tmsPoint/queryList";
gj_cx = ct + "tmsAlarm/queryList";
gzp_cx = ct + "tmsWorkTicket/queryList";
jxp_cx = ct + "tmsOverhaulTicket/queryList";
xl_sc = ct + "port/clearConPort";
xlz_cx = ct + "deviceLine/queryList";
xlz_xz = ct + "deviceLine/save";
xlz_sc = ct + "deviceLine/delete";
xlz_bj = ct + "deviceLine/updateById";
xllx_cx = ct + "sysParam/getByCode?code=line";
cdqx_cx = ct + "menu/getMenus";
hwjc_cx = ct + "lora/getLatestAlarms";
jqr_bczl = ct + "robot/saveInstruct";
jqr_bczb = ct + "robot/saveCoordinate";
jqr_xj_cx = ct + "robot/queryInspection";
jqr_bctp = ct + "robot/saveInspection";
bdsp = ct + "video/event/subscription";
}
}
/// <summary>
/// 全局参数
/// </summary>
[System.Serializable]
public class GlobalParameter
{
/// <summary>
/// 登录后返回
/// </summary>
public string token;
/// <summary>
/// 温度最大阈值
/// </summary>
[Tooltip("温度最大阈值")] public string heatThresholdValueMax;
/// <summary>
/// 温度最小阈值
/// </summary>
[Tooltip("温度最小阈值")] public string heatThresholdValueMin;
/// <summary>
/// 湿度最大阈值
/// </summary>
[Tooltip("湿度最大阈值")] public string humidityThresholdValueMax;
/// <summary>
/// 湿度最小阈值
/// </summary>
[Tooltip("湿度最小阈值")] public string humidityThresholdValueMin;
}
}