12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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<LocalClock> localClocks = new List<LocalClock>();//全部局部时钟
- private void Awake()
- {
- int i;
- ///遍历全部动画组件
- ///添加局部时钟
- ///设置局部时钟父级
- ///添加时间线
- Animator[] anis = GetComponentsInChildren<Animator>();
- for (i = 0; i < anis.Length; i++)
- {
- Animator ani = anis[i];
- if (ani && ani.gameObject.GetComponent<Timeline>() == null)
- {
- LocalClock _localClock;
- if(!ani.gameObject.TryGetComponent<LocalClock>(out _localClock))
- {
- _localClock = ani.gameObject.AddComponent<LocalClock>();
- }
- _localClock.parent = Timekeeper.instance.Clock(m_ParentName);
- ani.gameObject.AddComponent<Timeline>().mode = TimelineMode.Local;
- _localClock.enabled = true;
- localClocks.Add(_localClock);
- }
-
- }
- ///寻路组件
- NavMeshAgent[] navs = GetComponentsInChildren<NavMeshAgent>();
- for (i = 0; i < navs.Length; i++)
- {
- NavMeshAgent nav = navs[i];
- if (nav.gameObject.GetComponent<Timeline>() == null)
- {
- LocalClock _localClock = nav.gameObject.AddComponent<LocalClock>();
- _localClock.parent = Timekeeper.instance.Clock(m_ParentName);
- nav.gameObject.AddComponent<Timeline>().mode = TimelineMode.Local;
- _localClock.enabled = true;
- localClocks.Add(_localClock);
- }
- }
- ///粒子组件
- //ParticleSystem[] particles = GetComponentsInChildren<ParticleSystem>();
- //for (i = 0; i < particles.Length; i++)
- //{
- // ParticleSystem particle = particles[i];
- // if (particle.gameObject.GetComponent<Timeline>() == null)
- // {
- // LocalClock _localClock = particle.gameObject.AddComponent<LocalClock>();
- // _localClock.parent = Timekeeper.instance.Clock(m_ParentName);
- // particle.gameObject.AddComponent<Timeline>().mode = TimelineMode.Local;
- // _localClock.enabled = true;
- // localClocks.Add(_localClock);
- // }
- //}
- }
- void Start()
- {
- //for (int i = 0; i < localClocks.Count; i++)
- //{
- // localClocks[i].gameObject.AddComponent<Timeline>().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;
- }
- }
- }
- }
|