Drop.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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 变量
  8. public float Timer;
  9. public float Speed;
  10. public bool MoveLock;
  11. #endregion
  12. public override bool RegistImmed()
  13. {
  14. if (base.RegistImmed())
  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. ManaReso.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. public void ResetStatus()
  35. {
  36. MoveLock = true;
  37. Timer = 0;
  38. Speed = Random.Range(3f, 5f);
  39. transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
  40. transform.SetCollider(true);
  41. transform.GetTweenSr().InOrigin = true;
  42. }
  43. public void FixedUpdate()
  44. {
  45. Timer += Time.fixedDeltaTime;
  46. if (Timer > 5)
  47. {
  48. Retrieve();
  49. ManaMiniGame.DropList.Remove(this);
  50. }
  51. if (MoveLock)
  52. {
  53. if (!ManaMiniGame.Pause)
  54. {
  55. transform.Translate(Vector3.down * Time.fixedDeltaTime * Speed);
  56. }
  57. }
  58. }
  59. public virtual void OnPointerClick(PointerEventData eventData)
  60. {
  61. ManaAudio.PlayClip(Clip.CurrentClip);
  62. MoveLock = false;
  63. transform.TweenForSr();
  64. transform.TweenForScale();
  65. transform.SetCollider(false);
  66. ManaMiniGame.DropList.Remove(this);
  67. }
  68. }