UIEnhancementVideoController.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Collections;
  3. using UnityEngine;
  4. public class UIEnhancementVideoController : MonoBehaviour
  5. {
  6. public void OnEnable()
  7. {
  8. this._playVideo = PlayVideo.CreateVideo(this._renderer);
  9. }
  10. public void OnDisable()
  11. {
  12. this._currentItem = null;
  13. this._playVideo.Dispose();
  14. }
  15. private void Update()
  16. {
  17. EnhancementItem current = UIEnhancementItem.Current;
  18. if (current != null && !current.Equals(this._currentItem))
  19. {
  20. this._currentItem = current;
  21. if (Array.IndexOf<string>(this._notExistVideos, current.Name) != -1)
  22. {
  23. this._playVideo.Stop();
  24. return;
  25. }
  26. if (current.Name == "attack" && current.Level == 3)
  27. {
  28. this.Play("Movies/ps4/enhancement", "attack_3.mp4", current);
  29. }
  30. else
  31. {
  32. this.Play("Movies/ps4/enhancement", string.Format("{0}.mp4", current.Name), current);
  33. }
  34. }
  35. }
  36. private void Play(string path, string name, EnhancementItem enhancementItem)
  37. {
  38. base.StartCoroutine(this.PlayCoroutine(path, name, enhancementItem));
  39. }
  40. private IEnumerator PlayCoroutine(string path, string name, EnhancementItem enhancementItem)
  41. {
  42. yield return new WaitForSeconds(0.5f);
  43. if (enhancementItem.Name != this._currentItem.Name)
  44. {
  45. yield break;
  46. }
  47. this._playVideo.Play(path, name, true);
  48. yield break;
  49. }
  50. [SerializeField]
  51. private MeshRenderer _renderer;
  52. private EnhancementItem _currentItem;
  53. private PlayVideo _playVideo;
  54. private readonly string[] _notExistVideos = new string[]
  55. {
  56. "maxEnergy",
  57. "maxHP"
  58. };
  59. }