示例#1
0
        public FX PlayFX(FX_Type fx_Type, Vector3 from)
        {
            FX fx = GameObjectPoolManager.Instance.FXDict[fx_Type].AllocateGameObject <FX>(Root);

            fx.transform.position = from;
            fx.Play();
            return(fx);
        }
        public override void Awake()
        {
            foreach (KeyValuePair <PrefabNames, int> kv in PoolConfigs)
            {
                string     prefabName = kv.Key.ToString();
                GameObject go_Prefab  = PrefabManager.Instance.GetPrefab(prefabName);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + prefabName);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    PoolDict.Add(kv.Key, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, kv.Value);
                }
            }

            foreach (KeyValuePair <string, MechaComponentConfig> kv in ConfigManager.MechaComponentConfigDict)
            {
                GameObject go_Prefab = PrefabManager.Instance.GetPrefab(kv.Value.MechaComponentKey);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + kv.Value.MechaComponentKey);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    MechaComponentPoolDict.Add(kv.Value.MechaComponentKey, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            foreach (string s in Enum.GetNames(typeof(ProjectileType)))
            {
                string         prefabName     = s;
                ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);
                GameObject     go_Prefab      = PrefabManager.Instance.GetPrefab(prefabName);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + prefabName);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    ProjectileDict.Add(projectileType, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            foreach (string s in Enum.GetNames(typeof(ProjectileType)))
            {
                string         prefabName     = s.Replace("Projectile_", "Hit_");
                ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);

                GameObject go_Prefab = PrefabManager.Instance.GetPrefab(prefabName);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + prefabName);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    ProjectileHitDict.Add(projectileType, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            foreach (string s in Enum.GetNames(typeof(ProjectileType)))
            {
                string         prefabName     = s.Replace("Projectile_", "Flash_");
                ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);

                GameObject go_Prefab = PrefabManager.Instance.GetPrefab(prefabName);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + prefabName);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    ProjectileFlashDict.Add(projectileType, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            foreach (string s in Enum.GetNames(typeof(FX_Type)))
            {
                FX_Type    fx_Type   = (FX_Type)Enum.Parse(typeof(FX_Type), s);
                GameObject go_Prefab = PrefabManager.Instance.GetPrefab(s);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + s);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    FXDict.Add(fx_Type, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            foreach (string s in Enum.GetNames(typeof(BattleTipPrefabType)))
            {
                BattleTipPrefabType bt_Type   = (BattleTipPrefabType)Enum.Parse(typeof(BattleTipPrefabType), s);
                GameObject          go_Prefab = PrefabManager.Instance.GetPrefab(s);
                if (go_Prefab)
                {
                    GameObject     go   = new GameObject("Pool_" + s);
                    GameObjectPool pool = go.AddComponent <GameObjectPool>();
                    pool.transform.SetParent(Root);
                    BattleUIDict.Add(bt_Type, pool);
                    PoolObject po = go_Prefab.GetComponent <PoolObject>();
                    pool.Initiate(po, 20);
                }
            }

            IsInit = true;
        }
    void Awake()
    {
        PrefabManager.Instance.LoadPrefabs_Editor();

        foreach (KeyValuePair <PrefabNames, int> kv in PoolConfigs)
        {
            string     prefabName = kv.Key.ToString();
            GameObject go_Prefab  = PrefabManager.Instance.GetPrefab(prefabName);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + prefabName);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                PoolDict.Add(kv.Key, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, kv.Value);
            }
        }

        foreach (string s in Enum.GetNames(typeof(MechaComponentType)))
        {
            string             prefabName         = "MechaComponent_" + s;
            MechaComponentType mechaComponentType = (MechaComponentType)Enum.Parse(typeof(MechaComponentType), s);
            GameObject         go_Prefab          = PrefabManager.Instance.GetPrefab(prefabName);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + prefabName);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                MechaComponentPoolDict.Add(mechaComponentType, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, 20);
            }
        }

        foreach (string s in Enum.GetNames(typeof(ProjectileType)))
        {
            string         prefabName     = s;
            ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);
            GameObject     go_Prefab      = PrefabManager.Instance.GetPrefab(prefabName);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + prefabName);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                ProjectileDict.Add(projectileType, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, 20);
            }
        }

        foreach (string s in Enum.GetNames(typeof(ProjectileType)))
        {
            string         prefabName     = s.Replace("Projectile_", "Hit_");
            ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);

            GameObject go_Prefab = PrefabManager.Instance.GetPrefab(prefabName);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + prefabName);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                ProjectileHitDict.Add(projectileType, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, 20);
            }
        }

        foreach (string s in Enum.GetNames(typeof(ProjectileType)))
        {
            string         prefabName     = s.Replace("Projectile_", "Flash_");
            ProjectileType projectileType = (ProjectileType)Enum.Parse(typeof(ProjectileType), s);

            GameObject go_Prefab = PrefabManager.Instance.GetPrefab(prefabName);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + prefabName);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                ProjectileFlashDict.Add(projectileType, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, 20);
            }
        }

        foreach (string s in Enum.GetNames(typeof(FX_Type)))
        {
            FX_Type    fx_Type   = (FX_Type)Enum.Parse(typeof(FX_Type), s);
            GameObject go_Prefab = PrefabManager.Instance.GetPrefab(s);
            if (go_Prefab)
            {
                GameObject     go   = new GameObject("Pool_" + s);
                GameObjectPool pool = go.AddComponent <GameObjectPool>();
                pool.transform.SetParent(transform);
                FXDict.Add(fx_Type, pool);
                PoolObject po = go_Prefab.GetComponent <PoolObject>();
                pool.Initiate(po, 20);
            }
        }
    }