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; } }