예제 #1
0
파일: EffectUtil.cs 프로젝트: Hengle/Fish
    public int Play(int id, Transform parent = null)
    {
        try
        {
            if (!this.effectPools.ContainsKey(id))
            {
                var prefab = EffectAssets.LoadEffect(id);
                this.effectPools[id] = GameObjectPoolUtil.Create(prefab);
            }

            var pool      = this.effectPools[id];
            var instance  = pool.Get();
            var behaviour = instance.GetComponent <EffectBehaviour>();
            behaviour.effectId = id;

            if (!behaviour.gameObject.activeInHierarchy)
            {
                behaviour.SetActive(true);
            }

            playInstanceId++;
            playingEffect[playInstanceId] = behaviour;
            behaviour.OnPlay(playInstanceId, parent);
            return(playInstanceId);
        }
        catch (System.Exception ex)
        {
            DebugEx.Log(ex);
            return(0);
        }
    }
예제 #2
0
    public static HeadUpGuild Get()
    {
        if (pool == null)
        {
            pool = GameObjectPoolUtil.Create(UIAssets.LoadPrefab("HeadUpGuild"));
        }

        var gameObject = pool.Get();

        return(gameObject.GetComponent <HeadUpGuild>());
    }
예제 #3
0
파일: AvatarPool.cs 프로젝트: Hengle/Fish
    public static GameObject GetBody(int id)
    {
        if (!pools.ContainsKey(id))
        {
            var prefab = MobAssets.LoadPrefab(id);
            pools[id] = GameObjectPoolUtil.Create(prefab);
        }

        var pool = pools[id];

        return(pool.Get());
    }
예제 #4
0
    public static DamageNum Get(DamageNum.Pattern pattern)
    {
        var intPattern = (int)pattern;

        if (pools.ContainsKey(intPattern))
        {
            pools[intPattern] = GameObjectPoolUtil.Create(UIAssets.LoadPrefab("DamageNum_" + intPattern));
        }

        var pool       = pools[intPattern];
        var gameObject = pool.Get();

        return(gameObject.GetComponent <DamageNum>());
    }