using BjData; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Utility; //============================================================ //支持中文,文件使用UTF-8编码 //@author YangHua //@create 20230920 //@company QianHuo // //@description: //============================================================ namespace QianHuo { public enum BiaoJiType { defaultModel, 电流异常, 电压异常, 私换互感器, 移相 } [Serializable] public struct ErrorObjs { public GameObject objParent; public GameObject[] objChildren; } public class BiaoJiController : MonoBehaviour { public BiaoJiType biaoJiType = BiaoJiType.defaultModel; public GameObject guimenFengYing; public GameObject biaoJiFengYing; public GameObject luoSi; public GameObject jiexianheFengYing; public GameObject huganqiFengYing; /// /// 三相_无互感器_无光伏 /// public ErrorObjs[] correctObjs; /// /// 三相_无互感器_无光伏 /// public ErrorObjs[] errorObjs; public ErrorObjs[] dianYaCorrectObjs; public ErrorObjs[] dianYaErrorObjs; public ErrorObjs currentErrorObj; public ErrorObjs currentCorrectObj; public string[] abc; public string warnningType; public string onSite; public string userState; public bool isGuanFu = false; // Use this for initialization private void Start() { //userState = GlobalFlag.biaojiData.userState; //warnningType = GlobalFlag.biaojiData.warningType; //onSite = GlobalFlag.biaojiData.onSite; //if (userState == "正常") return; if (guimenFengYing.GetComponent()) guimenFengYing.GetComponent()._collider.enabled = true; //guimenFengYing.SetActive(false); GameManager.Instance.YanDian = true; if (isGuanFu) { if (warnningType.Equals("电压异常")) { SwitchDianYaErrorObjs(); SwitchDianYaCorrectObjs(); } else if (warnningType.Equals("电流异常")) { SwitchDianLiuErrorObjs(); SwitchDianLiuCorrectObjs(); } } else { SwitchDianYaErrorObjs(); SwitchDianYaCorrectObjs(); SwitchDianLiuErrorObjs(); SwitchDianLiuCorrectObjs(); } switch (onSite) { case "电能表U型环短接": if (biaoJiFengYing.GetComponent()) luoSi.GetComponent().enabled = true; luoSi.GetComponent().Run = true; biaoJiFengYing.SetActive(false); SwitchDianLiuObjs(); break; case "接线盒U型环短接": case "接线盒连接片短接": case "接线盒小电阻短接": if (jiexianheFengYing != null) { if (jiexianheFengYing.GetComponent()) jiexianheFengYing.GetComponent()._collider.enabled = true; jiexianheFengYing.SetActive(false); } SwitchDianLiuObjs(); break; case "互感器U型环短接": case "互感器开路": if (huganqiFengYing != null) { if (huganqiFengYing.GetComponent()) huganqiFengYing.GetComponent()._collider.enabled = true; huganqiFengYing.SetActive(false); } break; } SwitchABC(); } /// /// 控制电流正确项 /// public void SwitchDianLiuObjs() { for (int i = 0; i < correctObjs.Length; i++) { correctObjs[i].objParent.SetActive(true); } } /// /// 三相_无互感器_无光伏 控制电流错误项 /// public void SwitchDianLiuErrorObjs() { string onSiteState = GlobalFlag.biaojiData.warningType; for (int i = 0; i < errorObjs.Length; i++) { int index = i; errorObjs[index].objParent.SetActive(false); if (onSiteState.Equals(errorObjs[index].objParent.name)) { errorObjs[index].objParent.SetActive(true); currentErrorObj = errorObjs[index]; } } } /// /// 三相_无互感器_无光伏 控制电流正确项 /// public void SwitchDianLiuCorrectObjs() { string onSiteState = GlobalFlag.biaojiData.warningType; for (int i = 0; i < correctObjs.Length; i++) { int index = i; correctObjs[index].objParent.SetActive(false); if (onSiteState.Equals(correctObjs[index].objParent.name)) { correctObjs[index].objParent.SetActive(true); currentCorrectObj = correctObjs[index]; } } } public void SwitchABC() { //if (!string.IsNullOrEmpty(GlobalFlag.biaojiData.selectInfo)) // abc = ToolUtility.GetInfos(GlobalFlag.biaojiData.selectInfo, '_'); for (int i = 0; i < currentErrorObj.objChildren.Length; i++) { currentErrorObj.objChildren[i].SetActive(false); } for (int i = 0; i < currentCorrectObj.objChildren.Length; i++) { currentCorrectObj.objChildren[i].SetActive(true); } for (int i = 0; i < abc.Length; i++) { int index = i; if (currentErrorObj.objParent != null) { for (int j = 0; j < currentErrorObj.objChildren.Length; j++) { if (abc[index].Equals(currentErrorObj.objChildren[j].name)) { currentErrorObj.objChildren[j].SetActive(true); } } } } for (int i = 0; i < abc.Length; i++) { int index = i; if (currentCorrectObj.objParent != null) { for (int j = 0; j < currentCorrectObj.objChildren.Length; j++) { if (abc[index].Equals(currentCorrectObj.objChildren[j].name)) { currentCorrectObj.objChildren[j].SetActive(false); } } } } } public void SwitchDianYaErrorObjs() { string onSiteState = GlobalFlag.biaojiData.warningType; for (int i = 0; i < dianYaCorrectObjs.Length; i++) { dianYaCorrectObjs[i].objParent.SetActive(false); if (dianYaCorrectObjs[i].objParent.name.Contains(onSiteState)) { dianYaCorrectObjs[i].objParent.SetActive(true); currentCorrectObj = dianYaCorrectObjs[i]; } } } public void SwitchDianYaCorrectObjs() { string onSiteState = GlobalFlag.biaojiData.warningType; for (int i = 0; i < dianYaErrorObjs.Length; i++) { dianYaErrorObjs[i].objParent.SetActive(false); if (dianYaErrorObjs[i].objParent.name.Contains(onSiteState)) { dianYaErrorObjs[i].objParent.SetActive(true); currentErrorObj = dianYaErrorObjs[i]; } } } } }