AniDriver_WaitFrameToActiveObjs.cs 1021 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using ChivaXR;
  5. using System;
  6. public class AniDriver_WaitFrameToActiveObjs : AnimationDriverBase
  7. {
  8. public int waitFrames;
  9. public float aniFPS = 30;
  10. public List<GameObject> objs = new List<GameObject>();
  11. public bool activeObjs;
  12. public override void FinishedState()
  13. {
  14. foreach (var item in objs)
  15. {
  16. item.SetActive(activeObjs);
  17. }
  18. }
  19. public override void InitState()
  20. {
  21. foreach (var item in objs)
  22. {
  23. item.SetActive(!activeObjs);
  24. }
  25. }
  26. public override void StartPlay(Action finishedCallBack = null)
  27. {
  28. StartAniCoroutine(WaitFrame(finishedCallBack));
  29. }
  30. IEnumerator WaitFrame(Action finishedCallBack)
  31. {
  32. yield return new WaitForSeconds(waitFrames / aniFPS);
  33. foreach (var item in objs)
  34. {
  35. item.SetActive(activeObjs);
  36. }
  37. finishedCallBack?.Invoke();
  38. }
  39. }