コード例 #1
0
ファイル: SimpleMemoryPool.cs プロジェクト: argul/tri_battle
	protected void DoRecycle(IPoolUser obj)
	{
		var token = obj.Token;
		Stack<IPoolUser> stack = null;
		if (!pool.TryGetValue(token, out stack))
		{
			stack = new Stack<IPoolUser>();
			pool.Add(token, stack);
		}
		stack.Push(obj);
	}
コード例 #2
0
ファイル: SimpleMemoryPool.cs プロジェクト: argul/tri_battle
    protected void DoRecycle(IPoolUser obj)
    {
        var token = obj.Token;
        Stack <IPoolUser> stack = null;

        if (!pool.TryGetValue(token, out stack))
        {
            stack = new Stack <IPoolUser>();
            pool.Add(token, stack);
        }
        stack.Push(obj);
    }
コード例 #3
0
        // Create pools of the enemies that we have in our container.
        public void InitializeWithPooler(IPoolManager pooler, int poolSize)
        {
            this.pooler = pooler;

            // Instantiate the enemies and set up their properties.
            for (int i = 0; i < enemyPrefabs.Length; i++)
            {
                PooledObject[] poolContainer = pooler.CreatePool(enemyPrefabs[i], poolSize);
                foreach (PooledObject poolObj in poolContainer)
                {
                    // Initialize features of the enemies.
                    IScore scorer = poolObj.GetComponent <IScore>();
                    if (scorer != null)
                    {
                        scorer.Initialize(scoreManager);
                    }
                    IPoolUser poolUser = poolObj.GetComponent <IPoolUser>();
                    if (poolUser != null)
                    {
                        poolUser.InitializeWithPooler(pooler, poolSize);
                    }
                }
            }
        }
コード例 #4
0
ファイル: AmmoLoader.cs プロジェクト: Elam92/CannonGame
        // Create pools of the projectiles that we have in our container.
        public void InitializeWithPooler(IPoolManager pooler, int poolSize)
        {
            this.pooler = pooler;

            if (poolSize <= 0 || projectileTypes == null || projectileTypes.Length == 0)
            {
                return;
            }

            for (int i = 0; i < projectileTypes.Length; i++)
            {
                PooledObject[] poolContainer = pooler.CreatePool(projectileTypes[i], 5);
                foreach (PooledObject poolObj in poolContainer)
                {
                    IPoolUser poolUser = poolObj.GetComponent <IPoolUser>();
                    if (poolUser != null)
                    {
                        poolUser.InitializeWithPooler(pooler, 5);
                    }
                }
            }

            SetType(0);
        }
コード例 #5
0
ファイル: SimpleMemoryPool.cs プロジェクト: argul/tri_battle
 public void Recycle(IPoolUser obj)
 {
     DoRecycle(obj);
 }
コード例 #6
0
ファイル: SimpleMemoryPool.cs プロジェクト: argul/tri_battle
	public void Recycle(IPoolUser obj)
	{
		DoRecycle(obj);
	}