Drop.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. public class Drop : Regist,IPointerClickHandler
  6. {
  7. #region Config
  8. public float LiveTime = 5;
  9. public float LiveTimer;
  10. public float Speed;
  11. private float MinSpeed = 3;
  12. private float MaxSpeed = 5;
  13. public bool MoveLock;
  14. #endregion
  15. public override bool InitAtOnce()
  16. {
  17. if (base.InitAtOnce())
  18. {
  19. return true;
  20. }
  21. enabled = true;
  22. transform.CreateTweenSr(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
  23. TweenRoot tween = transform.CreateTweenScale(0.8f, 1.2f, 0.25f, true, false, Curve.EaseOutQuad);
  24. tween.OnForwardFinish += () =>
  25. {
  26. ResourceManager.Save(this);
  27. };
  28. return false;
  29. }
  30. public void Retrieve()
  31. {
  32. MoveLock = false;
  33. transform.TweenForSr();
  34. transform.TweenForScale();
  35. transform.SetCollider(false);
  36. }
  37. public void ResetStatus()
  38. {
  39. MoveLock = true;
  40. LiveTimer = 0;
  41. Speed = Random.Range(MinSpeed, MaxSpeed);
  42. transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
  43. transform.SetCollider(true);
  44. transform.GetTweenSr().InOrigin = true;
  45. }
  46. public void Update()
  47. {
  48. if (!MiniGameManager.Pause)
  49. {
  50. LiveTimer += Time.deltaTime;
  51. if (LiveTimer > LiveTime)
  52. {
  53. Retrieve();
  54. MiniGameManager.DropAwardList.Remove(this);
  55. }
  56. }
  57. if (MoveLock)
  58. {
  59. if (!MiniGameManager.Pause)
  60. {
  61. transform.Translate(Vector3.down * Time.deltaTime * Speed);
  62. }
  63. }
  64. }
  65. public virtual void OnPointerClick(PointerEventData eventData)
  66. {
  67. AudioManager.PlayClip(AudioLabel.GetCurrent);
  68. MoveLock = false;
  69. transform.TweenForSr();
  70. transform.TweenForScale();
  71. transform.SetCollider(false);
  72. MiniGameManager.DropAwardList.Remove(this);
  73. }
  74. }