| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | using System.Collections;using System.Collections.Generic;using CombatLibrary.CombatLibrary.CombatCore.Utility;using Fort23.UTool;using UnityEngine;public class ImageMoveContainer{    protected List<ImageMove> allImageMove = new List<ImageMove>();    public void AddACurve(Vector2 startPos, Vector2 target, float delay, float speed, GameObjectPool gameObjectPool,        AnimationCurve ui_showSize = null, AnimationCurve ui_moveSize = null, AnimationCurve ui_moveSpped = null)    {        ACurve aCurve = new ACurve();        CurveInfo curveInfo = new CurveInfo();        Vector3 p = startPos + (startPos - target).normalized * 1;        Vector3 moveTargetPos = new Vector3(p.x + Random.Range(-0, 0),            p.y + Random.Range(-0, 0));        Vector2 newStartPos = moveTargetPos;        curveInfo.t = newStartPos.x;        curveInfo.v = newStartPos.y;        curveInfo.BSLt = 0;        float x = Random.Range(-10, 10) * 30;        Vector3 normal = (target - newStartPos).normalized;        normal = new Vector3(Random.Range(-100, 100), Random.Range(-100, 100));        curveInfo.it = normal.x + x + curveInfo.t;        curveInfo.ot = normal.y + curveInfo.v + 10;        CurveInfo curveInfo2 = new CurveInfo();        curveInfo2.t = target.x;        curveInfo2.v = target.y;        Vector3 normal2 = (newStartPos - target).normalized;        curveInfo2.it = normal2.x + x + curveInfo2.t;        curveInfo2.ot = normal2.y + curveInfo2.v + 10;        curveInfo2.BSLt = 1;        aCurve.CurveInfos = new List<CurveInfo>();        aCurve.CurveInfos.Add(curveInfo);        aCurve.CurveInfos.Add(curveInfo2);        aCurve.CurveType = CurveType.BSL;        ImageMove currImageMove = new ImageMove();        currImageMove.SizeCurve = ui_moveSize;        currImageMove.moveSpeed = ui_moveSpped;        // currImageMove.ShowSizeCurve = ui_showSize;        // currImageMove.showSizeSpeed = 10;        // GameObjectPool gameObjectPool =        //     GObjectPool.Instance.FetchAsyncForGameObject<GameObjectPool>(moveIcon, "moveIcon");        gameObjectPool.own.SetActive(false);        currImageMove.GameObjectPool = gameObjectPool;        // gameObjectPool.own.GetComponent<Image>().icon_name = itemConfig.icon;        currImageMove.transform = gameObjectPool.own.GetComponent<RectTransform>();        currImageMove.moveStartPos = startPos;              // currImageMove.transform.SetParent(root);        currImageMove.transform.anchoredPosition = currImageMove.moveStartPos;        currImageMove.yanChi = delay;        currImageMove.speed = speed;        currImageMove.currAcur = aCurve;        allImageMove.Add(currImageMove);    }    public void RenderUpdateCallBack()    {        for (int i = 0; i < allImageMove.Count; i++)        {            ImageMove imageMove = allImageMove[i];            if (imageMove.Update())            {                allImageMove.RemoveAt(i);                i--;            }        }    }    public void Dispose()    {        for (int i = 0; i < allImageMove.Count; i++)        {            ImageMove imageMove = allImageMove[i];            GObjectPool.Instance.Recycle(imageMove.GameObjectPool);            allImageMove.RemoveAt(i);            i--;        }    }}
 |