Drop.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 Timer;
  9. public float Speed;
  10. public bool MoveLock;
  11. #endregion
  12. public override bool InitAtOnce()
  13. {
  14. if (base.InitAtOnce())
  15. {
  16. return true;
  17. }
  18. enabled = true;
  19. transform.CreateTweenSr(1, 0, 0.25f, true, false, Curve.EaseOutQuad);
  20. TweenRoot tween = transform.CreateTweenScale(0.8f, 1.2f, 0.25f, true, false, Curve.EaseOutQuad);
  21. tween.OnForwardFinish += () =>
  22. {
  23. ResourceManager.Save(this);
  24. };
  25. return false;
  26. }
  27. public void Retrieve()
  28. {
  29. MoveLock = false;
  30. transform.TweenForSr();
  31. transform.TweenForScale();
  32. transform.SetCollider(false);
  33. }
  34. private float MinSpeed = 3;
  35. private float MaxSpeed = 5;
  36. public void ResetStatus()
  37. {
  38. MoveLock = true;
  39. Timer = 0;
  40. Speed = Random.Range(MinSpeed, MaxSpeed);
  41. transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
  42. transform.SetCollider(true);
  43. transform.GetTweenSr().InOrigin = true;
  44. }
  45. private float MaxLiveTime = 5;
  46. public void Update()
  47. {
  48. if (!MiniGameManager.Pause)
  49. {
  50. Timer += Time.deltaTime;
  51. if (Timer > MaxLiveTime)
  52. {
  53. Retrieve();
  54. MiniGameManager.DropList.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.DropList.Remove(this);
  73. }
  74. }