コード例 #1
0
    void showIconItemBuff(string id, EItemState state, int numberWave)
    {
        GameObject itemBuff = MonoBehaviour.Instantiate(Resources.Load <GameObject> ("Prefab/Effect/Item Buff")) as GameObject;

        itemBuff.transform.parent     = PlayManager.Instance.itemBuffTemp.transform;
        itemBuff.transform.localScale = Vector3.one;

        //set dimension
        UISprite sprite = itemBuff.GetComponent <UISprite> ();

        sprite.keepAspectRatio = UIWidget.AspectRatioSource.Free;
        sprite.SetDimensions(sprite.mainTexture.width, sprite.mainTexture.height);
        sprite.keepAspectRatio = UIWidget.AspectRatioSource.BasedOnHeight;

        itemBuff.GetComponent <UIStretch> ().container = waveTemp;

        //set anchor sprite
        UIAnchor anchor = itemBuff.GetComponent <UIAnchor> ();

        anchor.container      = waveTemp;
        anchor.relativeOffset = new Vector2(PlayConfig.AnchorItemBuffStart.x, PlayConfig.AnchorItemBuffStart.y
                                            - listItemBuff.Count * PlayConfig.AnchorItemBuffDistanceY);

        //set anchor label
        itemBuff.transform.GetChild(0).GetComponent <UIAnchor> ().enabled = true;

        //set icon and wave
        ItemBuffController itemBuffController = itemBuff.GetComponent <ItemBuffController> ();

        itemBuffController.ID    = id;
        itemBuffController.State = state;
        itemBuffController.Waves = numberWave;

        listItemBuff.Add(id, itemBuff);
    }
コード例 #2
0
    void checkItemBuffAvailable()
    {
        if (ItemManager.Instance.listItemBuff.Count == 0)
        {
            return;
        }

        if (WaveCurrent >= 2)
        {
            ArrayList listToDestroy = new ArrayList();

            foreach (System.Collections.Generic.KeyValuePair <string, GameObject> iterator in ItemManager.Instance.listItemBuff)
            {
                ItemBuffController itemBuffController = iterator.Value.GetComponent <ItemBuffController>();
                itemBuffController.Waves--;

                if (itemBuffController.Waves == 0)
                {
                    listToDestroy.Add(iterator.Key);
                }
            }

            bool hasUpdate = false;
            foreach (var i in listToDestroy)
            {
                GameObject obj = ItemManager.Instance.listItemBuff[i.ToString()];

                ItemManager.Instance.listItemBuff.Remove(i.ToString()); //remove from list
                ItemManager.Instance.listItemState.Remove(obj.GetComponent <ItemBuffController>().State);
                Destroy(obj);                                           //delete game object

                hasUpdate = true;
            }

            if (hasUpdate)
            {
                PlayManager.Instance.resetTowerBonus();
                PlayManager.Instance.towerInfoController.checkTowerBonus();
                ItemManager.Instance.resetItemBuff();
            }
        }
    }