示例#1
0
    // Start is called before the first frame update
    void Start()
    {
        _pool = new Pool <GameObject>();
        var allocator = new GameObjectAllocator();

        _pool.SetTemplate(Instantiate(Template), allocator);
    }
示例#2
0
    public IEnumerator Test()
    {
        var pool = new Pool <GameObject>();
        var tmp  = GameObject.CreatePrimitive(PrimitiveType.Cube);
        var allc = new GameObjectAllocator();

        allc.SetTemplate(tmp);
        pool.SetAllocator(allc);
        yield return(new WaitForSeconds(1));

        //
        var o1 = pool.Spawn();

        Assert.IsNotNull(o1);
        yield return(new WaitForSeconds(1));

        pool.Recycle(o1);
        yield return(new WaitForSeconds(1));

        pool.Reserve(10);
        Assert.AreEqual(10, pool.Count);
        yield return(new WaitForSeconds(3));

        o1 = pool.Spawn();
        Assert.IsNotNull(o1);
        Assert.AreEqual(9, pool.Count);
        yield return(new WaitForSeconds(1));

        pool.Clear();
        Assert.AreEqual(0, pool.Count);
        yield return(new WaitForSeconds(3));

        pool.Dispose();
        yield return(new WaitForSeconds(3));
    }
示例#3
0
    public void Setup()
    {
        new YX.EventManager();
        DB       = new MockDB();
        CardPool = new Pool <GameObject>();
        var tmp       = Instantiate(Resources.Load <GameObject>("view/card/TCard"));
        var allocator = new GameObjectAllocator();

        CardPool.SetTemplate(tmp, allocator);
        DontDestroyOnLoad(allocator.CacheRoot);
        LevelLoader = gameObject.AddComponent <LevelLoader>();
        ProcessMgr  = new ProcessManager();
        //
        _stateDict.Add(StateType.MainMenu, new MainMenuState());
        _stateDict.Add(StateType.WorldMap, new WorldMapState());
        _stateDict.Add(StateType.Battle, new BattleState());
    }