public void OnCreateItem() { //作成に必要なもの<ID, 数> Dictionary <string, int> requirementDict = _itemData.ParseRequirementStr(); //作れるかチェック bool canCreate = true; foreach (string reqDataId in requirementDict.Keys) { //自分の持ってる数 int numOwn = PlayerData.GetItemNum(reqDataId); if (numOwn >= requirementDict [reqDataId]) { canCreate &= true; } //数が足りないのでbreak; else { canCreate = false; } } //特定のアイテムの作成条件をチェック canCreate = this.canCreateItem(); //作れるなら素材消費 if (canCreate) { foreach (string reqDataId in requirementDict.Keys) { //自分の持ってる数 PlayerData.UseItem(reqDataId, requirementDict [reqDataId]); } //PlayerDataに追加 PlayerData.AddItem(_itemData); //NotifyUiで表示 UiController.Instance.NotifyPop("created " + _itemData.Name + " x1"); } //if }
public void InitItemCraftingData(AbstractData itemData) { gameObject.SetActive(true); _itemData = itemData; string atlasName = ""; if (_itemData.GetType() == typeof(SwordData)) { atlasName = "WeaponAtlas"; } //アイテムの画像設置 itemImage.sprite = GameManager.Instance.GetSpriteFromPath(atlasName, _itemData.Image); //アスペクトをONのまま横サイズをFixさせながらリサイズ。 itemImage.preserveAspect = true; itemImage.SetNativeSize(); Vector2 imgSize = itemImage.GetComponent <RectTransform>().sizeDelta; imgSize.x = 100; itemImage.GetComponent <RectTransform> ().sizeDelta = imgSize; //素材設置<ID, 数> Dictionary <string, int> requirementDict = _itemData.ParseRequirementStr(); foreach (string id in requirementDict.Keys) { int value = requirementDict [id]; MaterialItem materialItem = (MaterialItem)Instantiate(materialItemPrefab); materialItem.SetUpMaterialItem(id); materialItem.materialNum.text = id + " x" + value; materialItem.transform.SetParent(MaterialListPos); materialItem.transform.localPosition = Vector3.zero; materialItem.transform.localScale = Vector3.one; } }