コード例 #1
0
    public void Initialize(int maxValue, int value)
    {
        this.maxValue = int.MinValue;
        this.value    = int.MinValue;

        if (isInitialized)
        {
            SetMaxValue(maxValue);
            SetValue(value);
            return;
        }

        isInitialized = true;
        toggles       = new List <Toggle>();

        // Pool
        prefab.gameObject.SetActive(false);
        pool = new LocalObjectPool <Toggle>(prefab, transform, maxValue, toggle =>
                                            toggle.transform.SetParent(transform, false));

        SetMaxValue(maxValue);
        SetValue(value);

        Canvas.ForceUpdateCanvases();
        gameObject.SetActive(false);
        gameObject.SetActive(true);
        hlg.enabled = false;
        hlg.enabled = true;
    }
コード例 #2
0
    public void SetTowerCount(int towerCount)
    {
        towerCards = new List <TowerCard>();

        foreach (var id in TowerTable.GetTowerIds().Take(towerCount))
        {
            TowerCard card   = new TowerCard();
            var       status = TowerTable.GetStatus(id);
            card.id     = id;
            card.prefab = (Tower)status.prefab;
            card.sprite = status.sprite;
            card.cost   = status.cost;

            towerCards.Add(card);
        }

        prefabs    = new Dictionary <TowerCard, Tower>();
        towerPools = new Dictionary <TowerCard, LocalObjectPool <Tower> >();
        foreach (var card in towerCards)
        {
            Transform towerHolder        = new GameObject($"Tower Pool ({card.id})").transform;
            LocalObjectPool <Tower> pool = new LocalObjectPool <Tower>(
                card.prefab, towerHolder, 5
                );
            prefabs.Add(card, card.prefab);
            towerPools.Add(card, pool);
        }
        cursor.gameObject.SetActive(false);
    }
コード例 #3
0
    protected override void Initialize()
    {
        AudioManager.PlayMusic(bgms[stageIndex - 1]);
        base.Initialize();

        var stageData = StageTable.GetStageData(stageIndex);

        CostManager.instance.Earn(stageData.defaultCost);

        SummonTower.instance.SetTowerCount(stageData.towerCount);
        fieldGenerator.Generate(stageData.column, stageData.row);

        waveDatas  = StageTable.GetStage(stageIndex);
        ghostPools = new Dictionary <string, LocalObjectPool <Ghost> >();

        HashSet <string> ghostIds = new HashSet <string>(
            from wave in waveDatas
            from data in wave
            select data.id
            );

        foreach (var id in ghostIds)
        {
            Ghost prefab = (Ghost)GhostTable.GetStatus(id).prefab;
            var   holder = new GameObject($"{id} Holder").transform;
            var   pool   = new LocalObjectPool <Ghost>(prefab, holder, 15);
            ghostPools.Add(id, pool);
        }

        StartCoroutine(Staging());
    }
コード例 #4
0
 public void Initialize()
 {
     if (isInitialized)
     {
         return;
     }
     isInitialized = true;
     pool          = new LocalObjectPool <Text>(textPrefab, textHolder, preSpawnCount);
 }
コード例 #5
0
 protected override void Initialize()
 {
     pool = new LocalObjectPool <Effect>(prefab, transform, 10);
 }
コード例 #6
0
 private void Awake()
 {
     bulletPool = new LocalObjectPool <Bullet>(bulletPrefab, transform, 3, b => b.transform.SetParent(transform));
 }