using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using DG.Tweening; using LzFramework; using Newtonsoft.Json; namespace CpuIII { /// /// cpu 控制 /// public class CpuControll : MonoBehaviour { public List cpu_units; private CpuUnitInfoConfig cpuUnitInfoConfig; // Start is called before the first frame update void Start() { WebGLConfiguratiobReader webGLConfiguratiobReader = new WebGLConfiguratiobReader("Config/cpuConfig.json"); CoroutineManager.Singleton.CreateCoroutine(webGLConfiguratiobReader.ReadCoroutine(), () => { Debug.LogFormat("On Start"); }, (finish) => { Debug.LogFormat("On Finish"); cpuUnitInfoConfig = JsonConvert.DeserializeObject(webGLConfiguratiobReader.ReadResult); Debug.LogFormat("ReadResult {0}", webGLConfiguratiobReader.ReadResult); Debug.LogFormat("cpuUnitInfoConfig {0}", cpuUnitInfoConfig.cpuInfos.Count); StartCoroutine(AnimatorProgress()); }); } /// /// 动画进度 /// /// IEnumerator AnimatorProgress() { float delayTime = 0.3f; for (int i = 0; i < cpu_units.Count; i++) { cpu_units[i].target.gameObject.SetActive(true); yield return new WaitForSeconds(delayTime); Outline outline = cpu_units[i].target.gameObject.GetComponent(); if(outline!=null) outline.enabled = false; delayTime = delayTime - i * 0.1f; if (delayTime < 0) delayTime = 0.01f; } yield return new WaitForSeconds(0.2f); StartCoroutine(ShowOutLineProgress()); } /// /// 显示外发光 /// /// IEnumerator ShowOutLineProgress() { yield return new WaitForSeconds(3.0f); for(int i = 0;i< cpu_units.Count; i++) { for(int j = 0;j< cpuUnitInfoConfig.cpuInfos.Count; j++) { if(string.Equals(cpu_units[i].name, cpuUnitInfoConfig.cpuInfos[j])) { Outline outline = cpu_units[i].target.gameObject.GetComponent(); if (outline != null) { outline.enabled = true; MeshRenderer mesh = cpu_units[i].target.GetComponent(); outline.FadeColor(); } break; } } } } } [Serializable] public class CpuUnitInfo { public string name; public Transform target; public Color outLineColor; } public class CpuUnitInfoConfig { public List cpuInfos; } }