258 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 三相_无互感器_无光伏
 | ||
|         /// </summary>
 | ||
|         public ErrorObjs[] correctObjs;
 | ||
|         /// <summary>
 | ||
|         /// 三相_无互感器_无光伏
 | ||
|         /// </summary>
 | ||
|         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<DoolsPlayer>())
 | ||
|                 guimenFengYing.GetComponent<DoolsPlayer>()._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<AmmeterSon>())
 | ||
|                         luoSi.GetComponent<AmmeterSon>().enabled = true;
 | ||
|                     luoSi.GetComponent<AmmeterSon>().Run = true;
 | ||
|                     biaoJiFengYing.SetActive(false);
 | ||
|                     SwitchDianLiuObjs();
 | ||
|                     break;
 | ||
|                 case "接线盒U型环短接":
 | ||
|                 case "接线盒连接片短接":
 | ||
|                 case "接线盒小电阻短接":
 | ||
|                     if (jiexianheFengYing != null)
 | ||
|                     {
 | ||
|                         if (jiexianheFengYing.GetComponent<DoolsPlayer>())
 | ||
|                             jiexianheFengYing.GetComponent<DoolsPlayer>()._collider.enabled = true;
 | ||
|                         jiexianheFengYing.SetActive(false);
 | ||
|                     }
 | ||
|                     SwitchDianLiuObjs();
 | ||
|                     break;
 | ||
|                 case "互感器U型环短接":
 | ||
|                 case "互感器开路":
 | ||
|                     if (huganqiFengYing != null)
 | ||
|                     {
 | ||
|                         if (huganqiFengYing.GetComponent<DoolsPlayer>())
 | ||
|                             huganqiFengYing.GetComponent<DoolsPlayer>()._collider.enabled = true;
 | ||
|                         huganqiFengYing.SetActive(false);
 | ||
|                         
 | ||
|                     }
 | ||
|                     break;
 | ||
|             }
 | ||
|             SwitchABC();
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 控制电流正确项
 | ||
|         /// </summary>
 | ||
|         public void SwitchDianLiuObjs()
 | ||
|         {
 | ||
|             for (int i = 0; i < correctObjs.Length; i++)
 | ||
|             {
 | ||
|                 correctObjs[i].objParent.SetActive(true);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 三相_无互感器_无光伏 控制电流错误项
 | ||
|         /// </summary>
 | ||
|         public void SwitchDianLiuErrorObjs()
 | ||
|         {
 | ||
|             string onSiteState = GlobalFlag.biaojiData.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];
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 三相_无互感器_无光伏 控制电流正确项
 | ||
|         /// </summary>
 | ||
|         public void SwitchDianLiuCorrectObjs()
 | ||
|         {
 | ||
|             string onSiteState = GlobalFlag.biaojiData.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 (!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.onSite;
 | ||
|             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.onSite;
 | ||
|             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];
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| }
 |