示例#1
0
    public void 사용예시()
    {
        SimplePoolTarget.Reset_InstanceCount();
        int totalInstanceCount             = 10;
        SimplePool <SimplePoolTarget> pool = new SimplePool <SimplePoolTarget>(new SimplePoolTarget(), totalInstanceCount);
        int loopCount = Random.Range(3, 10);

        for (int i = 0; i < loopCount; i++)
        {
            int spawnCount = Random.Range(2, totalInstanceCount);
            HashSet <SimplePoolTarget> set = new HashSet <SimplePoolTarget>();
            for (int j = 0; j < spawnCount; j++)
            {
                set.Add(pool.Spawn());
            }

            foreach (var item in set)
            {
                pool.DeSpawn(item);
            }
        }

        Assert.AreEqual(pool.AllInstance.Count, totalInstanceCount);
        Assert.AreEqual(pool.Use.Count, 0);
        Assert.AreEqual(pool.NotUse.Count, totalInstanceCount);
    }
示例#2
0
    public void 사용예시_생성자Override()
    {
        SimplePoolTarget.Reset_InstanceCount();
        int    instanceCount = Random.Range(1, 10);
        PoolEx poolEx        = new PoolEx(instanceCount);

        Assert.AreEqual(poolEx.AllInstance.Count, instanceCount);

        SimplePoolTarget target = poolEx.Spawn();

        Assert.AreEqual(target.IsCreateFromFactory, true);
    }
示例#3
0
    public void 생성자에서_미리풀에생성할수있습니다()
    {
        SimplePoolTarget origin = new SimplePoolTarget();

        SimplePoolTarget.Reset_InstanceCount(); // origin을 생성하면서 추가된 instance count 초기화

        int instanceCount = Random.Range(1, 10);
        SimplePool <SimplePoolTarget> pool = new SimplePool <SimplePoolTarget>(origin, instanceCount);

        Assert.AreEqual(pool.AllInstance.Count, instanceCount);
        Assert.AreEqual(SimplePoolTarget.InstanceCount, instanceCount);
    }