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; public BiaoJIData biaoJiData = new BiaoJIData(); /// /// 短接类型 /// /// public string ShortCircuitType() { switch (biaoJiData.warningType) { case "电流短接": warnningType = "电流异常"; return "电能表U型环短接"; case "A相短接": warnningType = "电流异常"; return "电能表U型环短接"; case "B相短接": warnningType = "电流异常"; return "电能表U型环短接"; case "C相短接": warnningType = "电流异常"; return "电能表U型环短接"; } return ""; } public string[] ABC() { switch (biaoJiData.warningType) { case "电流短接": return new string[1] { "A" }; case "A相短接": return new string[1] { "A" }; case "B相短接": return new string[1] { "B" }; case "C相短接": return new string[1] { "C" }; } return null; } // Use this for initialization private void Start() { biaoJiData = GlobalFlag.biaojiData; //userState = GlobalFlag.biaojiData.userState; //warnningType = GlobalFlag.biaojiData.warningType; onSite = ShortCircuitType(); //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 = onSite; 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 = onSite; 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 (ABC() != null) abc = ABC(); 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]; } } } } }