batteryDiagnosis/Assets/Scripts/ChangeObjMat.cs

122 lines
4.1 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using UnityEngine;
public class ChangeObjMat : MonoBehaviour
{
public Material m_TM;
public List<MeshRenderer> m_RendererList;
private List<List<Material>> m_RecordRendererList = new List<List<Material>>();
/// <summary>
/// ³µÁ¾ÎïÌå
/// </summary>
public GameObject m_Obj;
/// <summary>
/// ³µÁ¾Ïß¿ò
/// </summary>
public GameObject m_XKObj;
/// <summary>
/// ³µÅÆÉ¨Ãè
/// </summary>
public GameObject m_CPObj;
/// <summary>
/// ³µÉíɨÃè
/// </summary>
public GameObject m_CSSMObj;
void Start()
{
m_RendererList = GetComponentsInChildren<MeshRenderer>().ToList();
m_RecordRendererList.Clear();
for (int i = 0; i < m_RendererList.Count; i++)
{
m_RecordRendererList.Add(m_RendererList[i].materials.ToList());
}
Bootstrap.Instance.eventCenter.AddEventListener<bool>(Enum_EventType.ChangeChildrenMat, ChangeChildrenMat);
Bootstrap.Instance.eventCenter.AddEventListener(Enum_EventType.StepSwitching, StepSwitching);
ChangeChildrenMat(true);
}
public void ChangeChildrenMat(bool Change)
{
if (Change)
{
for (int i = 0; i < m_RendererList.Count; i++)
{
int len = m_RendererList[i].materials.Length;
Material[] matArr = new Material[len];
for (int j = 0; j < len; j++)
{
matArr[j] = m_TM;
}
for (int j = 0; j < len; j++)
{
m_RendererList[i].materials = matArr;
}
}
}
else
{
for (int i = 0; i < m_RecordRendererList.Count; i++)
{
List<Material> materialList = m_RecordRendererList[i];
m_RendererList[i].materials = materialList.ToArray();
}
}
}
public async void StepSwitching()
{
Debug.Log($"StepSwitching");
#region ³µÅÆÊ±ð
await Task.Delay(3000);
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.AudioPlay, $"³µÅÆÊ¶±ð");
m_XKObj.SetActive(true);
m_CPObj.SetActive(true);
m_Obj.SetActive(false);
await Task.Delay(5000);
m_CPObj.SetActive(false);
if (Bootstrap.UIMgr != null) Bootstrap.UIMgr.ShowPanel<UI_MiddleTipPanel>(this, E_UI_Layer.System, (p) =>
{
p.Init($"¼ì²âµ½³µÅƺÅΪ"+ GetawayMqttClient.licensePlateData.LicensePlateNumber + "£¡", 5);
});
await Task.Delay(5000);
#endregion
#region ³µÉíÍâ¹Û¼ì²â
if (Bootstrap.UIMgr != null) Bootstrap.UIMgr.ShowPanel<UI_MiddleTipPanel>(this, E_UI_Layer.System, (p) =>
{
p.Init($"ÏÖÔÚ½øÈë³µÉíÍâ¹Û¼ì²â»·½Ú1.Éî¶È¼ì²âÒÑ¿ªÊ¼£¡", 5);
});
await Task.Delay(5000);
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.AudioPlay, $"³µÉíÍâ¹Û¼ì²â");
if (Bootstrap.UIMgr != null) Bootstrap.UIMgr.ShowPanel<UI_MiddleTipPanel>(this, E_UI_Layer.System, (p) =>
{
p.Init($"2.³µÍâ¹Û¼ì²â¿ªÊ¼£¡", 3);
});
await Task.Delay(3000);
if (Bootstrap.UIMgr != null) Bootstrap.UIMgr.ShowPanel<UI_MiddleTipPanel>(this, E_UI_Layer.System, (p) =>
{
p.Init($"3.ÄúµÄ°®³µÕý½øÐгµÍâ¹Û¼ì²â...", 10);
});
m_CSSMObj.SetActive(true);
await Task.Delay(10000);
m_CSSMObj.SetActive(false);
if (Bootstrap.UIMgr != null) Bootstrap.UIMgr.ShowPanel<UI_MiddleTipPanel>(this, E_UI_Layer.System, (p) =>
{
p.Init($"3.ÄúµÄ°®³µÕý½øÐгµÍâ¹Û¼ì²â...", 5);
});
await Task.Delay(5000);
#endregion
}
private void OnDisable()
{
if (Bootstrap.Instance != null)
{
Bootstrap.Instance.eventCenter.RemoveEventListener<bool>(Enum_EventType.ChangeChildrenMat, ChangeChildrenMat);
Bootstrap.Instance.eventCenter.RemoveEventListener(Enum_EventType.StepSwitching, StepSwitching);
}
}
}