Пример #1
0
        public void Play(LegionExpEffectType type, UnitCtl unit)
        {
            if (War.sceneData.visiableLegionLevelMsg == false)
            {
                return;
            }


            targetPos = targetGlow.transform.position;

            Vector3 unitPos = unit.transform.position;

            if (type == LegionExpEffectType.L)
            {
                unitPos += new Vector3(-2, 1, 0);
            }

            point.anchoredPosition = unitPos.WorldPosToAnchorPos();
            beginPos = point.position;

            GameObject go = War.pool.legionExpPool.Get(type);

            go.SetActive(false);
            go.transform.SetParent(transform);
            go.transform.position = beginPos;

            d         = targetPos - beginPos;
            magnitude = d.magnitude / 10f;
            //Debug.Log("targetPos =" +targetPos + "  d.magnitude=" + d.magnitude);

            midePos = beginPos + d * 0.5f + v * magnitude * Random.Range(-1f, 1f);

            go.transform.DOPath(new Vector3[] { beginPos, midePos, targetPos }, Mathf.Max(0.8f, 1f * magnitude), PathType.CatmullRom).SetDelay(count * 0.05f).SetEase(Ease.InExpo).OnStart(() => { go.SetActive(true); }).OnComplete(() => {
                go.GetComponent <PrefabPoolItem>().Release();
                go.SetActive(false);
                go.transform.position = Vector3.zero * -1000;

                targetGlow.DOKill();
                targetGlow.color = targetGlow.color.SetAlhpa(1);
                targetGlow.DOFade(0, 0.5f);
                count--;
            });
            count++;
        }
Пример #2
0
        public void Init(MonoBehaviour manager)
        {
            LegionExpEffectType[] types = new LegionExpEffectType[] { LegionExpEffectType.L, LegionExpEffectType.M, LegionExpEffectType.S };
            string[] names = new string[] { "LegionExpEffect_L", "LegionExpEffect_M", "LegionExpEffect_S" };
            string[] res   = new string[] { WarRes.e_legionexp_l, WarRes.e_legionexp_m, WarRes.e_legionexp_s };

            Transform  transform = manager.transform;
            PrefabPool pool      = null;

            for (int i = 0; i < types.Length; i++)
            {
                pool                = new PrefabPool();
                pool.cullAbove      = 30;
                pool.cullDelay      = 5;
                pool.cullMaxPerPass = 5;
                pool.manager        = manager;
                pool.prefab         = WarRes.GetPrefab(res[i]);
                pool.group          = new GameObject(names[i]).transform;
                pool.group.SetParent(transform);
                poolDict.Add(types[i], pool);
            }
        }
Пример #3
0
 public GameObject Get(LegionExpEffectType type)
 {
     return(poolDict[type].Get());
 }