示例#1
0
    public void InitItemObjButton <T>(GameObject content, ItemUI.ClickItemAction clickItemAction) where T : AbstractData
    {
        List <AbstractData> itemList = new List <AbstractData>();
        string atlasName             = "WeaponAtlas";

        if (typeof(T) == typeof(SwordData))
        {
            //List<SwordData>をList<AbstractData>にConvert。
            itemList  = _swordDataTableObj.Table.All.ConvertAll <AbstractData> (x => (AbstractData)x);
            atlasName = "WeaponAtlas";
        }
        else if (typeof(T) == typeof(GunData))
        {
            //List<GunData>をList<AbstractData>にConvert。
            itemList  = _gunDataTableObj.Table.All.ConvertAll <AbstractData> (x => (AbstractData)x);
            atlasName = "WeaponAtlas";
        }
        else if (typeof(T) == typeof(ToolItemData))
        {
            itemList  = _toolDataTableObj.Table.All.ConvertAll <AbstractData> (x => (AbstractData)x);
            atlasName = "ItemAtlas";
        }
        else if (typeof(T) == typeof(CraftItemData))
        {
            itemList  = _craftItemDataTableObj.Table.All.ConvertAll <AbstractData> (x => (AbstractData)x);
            atlasName = "ItemAtlas";
        }
        else if (typeof(T) == typeof(FoodData))
        {
            itemList  = _foodDataTableObj.Table.All.ConvertAll <AbstractData> (x => (AbstractData)x);
            atlasName = "ItemAtlas";
        }

        //ItemUIをInstantiateし、値をセットし、contentに追加。
        foreach (AbstractData itemData in itemList)
        {
            ItemUI initedItemUIObj = (ItemUI)Instantiate(itemUIPrefab);
            //「使用可能な数」を表示
            int totalCnt    = PlayerData.GetItemNum(itemData.ID);
            int equippedCnt = PlayerData.TotalEquipedNum(itemData.ID);

            Debug.LogError(itemData.ID + ", totalCnt: " + totalCnt + ", equippedCnt: " + equippedCnt);

            initedItemUIObj.InitItemMenu(atlasName, itemData, "" + totalCnt);
            initedItemUIObj.transform.SetParent(content.transform, false);
            initedItemUIObj.SetItemImageSize();
            //ボタンを押した際はクラフト、装備、(食べ物の場合は)食べるアクションをとる。
            initedItemUIObj._clickItemAction = clickItemAction;
        }
    }