using Chronos; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; namespace AdonGameKit { public class ChronosAdd : MonoBehaviour { public string m_ParentName = "Enemy"; //public float m_TimeScale = 1; List localClocks = new List();//全部局部时钟 private void Awake() { int i; ///遍历全部动画组件 ///添加局部时钟 ///设置局部时钟父级 ///添加时间线 Animator[] anis = GetComponentsInChildren(); for (i = 0; i < anis.Length; i++) { Animator ani = anis[i]; if (ani && ani.gameObject.GetComponent() == null) { LocalClock _localClock; if(!ani.gameObject.TryGetComponent(out _localClock)) { _localClock = ani.gameObject.AddComponent(); } _localClock.parent = Timekeeper.instance.Clock(m_ParentName); ani.gameObject.AddComponent().mode = TimelineMode.Local; _localClock.enabled = true; localClocks.Add(_localClock); } } ///寻路组件 NavMeshAgent[] navs = GetComponentsInChildren(); for (i = 0; i < navs.Length; i++) { NavMeshAgent nav = navs[i]; if (nav.gameObject.GetComponent() == null) { LocalClock _localClock = nav.gameObject.AddComponent(); _localClock.parent = Timekeeper.instance.Clock(m_ParentName); nav.gameObject.AddComponent().mode = TimelineMode.Local; _localClock.enabled = true; localClocks.Add(_localClock); } } ///粒子组件 //ParticleSystem[] particles = GetComponentsInChildren(); //for (i = 0; i < particles.Length; i++) //{ // ParticleSystem particle = particles[i]; // if (particle.gameObject.GetComponent() == null) // { // LocalClock _localClock = particle.gameObject.AddComponent(); // _localClock.parent = Timekeeper.instance.Clock(m_ParentName); // particle.gameObject.AddComponent().mode = TimelineMode.Local; // _localClock.enabled = true; // localClocks.Add(_localClock); // } //} } void Start() { //for (int i = 0; i < localClocks.Count; i++) //{ // localClocks[i].gameObject.AddComponent().mode = TimelineMode.Local; // localClocks[i].enabled = true; //} } private void Update() { //SetTimeScale(m_TimeScale); } public void SetTimeScale(float timeScale) { for (int i = 0; i < localClocks.Count; i++) { LocalClock _localClock = localClocks[i]; _localClock.localTimeScale = timeScale; } } } }