ImageMoveContainer.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using CombatLibrary.CombatLibrary.CombatCore.Utility;
  4. using Fort23.UTool;
  5. using UnityEngine;
  6. public class ImageMoveContainer
  7. {
  8. protected List<ImageMove> allImageMove = new List<ImageMove>();
  9. public void AddACurve(Vector2 startPos, Vector2 target, float delay, float speed, GameObjectPool gameObjectPool,
  10. AnimationCurve ui_showSize = null, AnimationCurve ui_moveSize = null, AnimationCurve ui_moveSpped = null)
  11. {
  12. ACurve aCurve = new ACurve();
  13. CurveInfo curveInfo = new CurveInfo();
  14. Vector3 p = startPos + (startPos - target).normalized * 1;
  15. Vector3 moveTargetPos = new Vector3(p.x + Random.Range(-0, 0),
  16. p.y + Random.Range(-0, 0));
  17. Vector2 newStartPos = moveTargetPos;
  18. curveInfo.t = newStartPos.x;
  19. curveInfo.v = newStartPos.y;
  20. curveInfo.BSLt = 0;
  21. float x = Random.Range(-10, 10) * 30;
  22. Vector3 normal = (target - newStartPos).normalized;
  23. normal = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100));
  24. curveInfo.it = normal.x + x + curveInfo.t;
  25. curveInfo.ot = normal.y + curveInfo.v + 10;
  26. CurveInfo curveInfo2 = new CurveInfo();
  27. curveInfo2.t = target.x;
  28. curveInfo2.v = target.y;
  29. Vector3 normal2 = (newStartPos - target).normalized;
  30. curveInfo2.it = normal2.x + x + curveInfo2.t;
  31. curveInfo2.ot = normal2.y + curveInfo2.v + 10;
  32. curveInfo2.BSLt = 1;
  33. aCurve.CurveInfos = new List<CurveInfo>();
  34. aCurve.CurveInfos.Add(curveInfo);
  35. aCurve.CurveInfos.Add(curveInfo2);
  36. aCurve.CurveType = CurveType.BSL;
  37. ImageMove currImageMove = new ImageMove();
  38. currImageMove.SizeCurve = ui_moveSize;
  39. currImageMove.moveSpeed = ui_moveSpped;
  40. // currImageMove.ShowSizeCurve = ui_showSize;
  41. // currImageMove.showSizeSpeed = 10;
  42. // GameObjectPool gameObjectPool =
  43. // GObjectPool.Instance.FetchAsyncForGameObject<GameObjectPool>(moveIcon, "moveIcon");
  44. gameObjectPool.own.SetActive(false);
  45. currImageMove.GameObjectPool = gameObjectPool;
  46. // gameObjectPool.own.GetComponent<Image>().icon_name = itemConfig.icon;
  47. currImageMove.transform = gameObjectPool.own.GetComponent<RectTransform>();
  48. currImageMove.moveStartPos = startPos;
  49. // currImageMove.transform.SetParent(root);
  50. currImageMove.transform.anchoredPosition = currImageMove.moveStartPos;
  51. currImageMove.yanChi = delay;
  52. currImageMove.speed = speed;
  53. currImageMove.currAcur = aCurve;
  54. allImageMove.Add(currImageMove);
  55. }
  56. public void RenderUpdateCallBack()
  57. {
  58. for (int i = 0; i < allImageMove.Count; i++)
  59. {
  60. ImageMove imageMove = allImageMove[i];
  61. if (imageMove.Update())
  62. {
  63. allImageMove.RemoveAt(i);
  64. i--;
  65. }
  66. }
  67. }
  68. public void Dispose()
  69. {
  70. for (int i = 0; i < allImageMove.Count; i++)
  71. {
  72. ImageMove imageMove = allImageMove[i];
  73. GObjectPool.Instance.Recycle(imageMove.GameObjectPool);
  74. allImageMove.RemoveAt(i);
  75. i--;
  76. }
  77. }
  78. }