void OnEnable() { statusWindowStatus = Camera.main.GetComponent <StatusWindowStatus>(); itemController = GameObject.FindGameObjectWithTag("Player").GetComponent <ItemController>(); statusWindowItemDataBase = Camera.main.GetComponent <StatusWindowItemDataBase>(); item = new GameObject[statusWindowItemDataBase.GetItemTotal()]; for (var i = 0; i < statusWindowItemDataBase.GetItemTotal(); i++) { item[i] = GameObject.Instantiate(itemPrefab) as GameObject; item[i].name = "Item" + i; item[i].transform.SetParent(transform, false); if (statusWindowStatus.GetItemFlag(i)) { item[i].transform.GetChild(0).GetComponent <Image>().sprite = statusWindowItemDataBase.GetItemData()[i].GetItemSprite(); } else if (itemController.GetItemFlag(i)) { item[i].transform.GetChild(0).GetComponent <Image>().sprite = statusWindowItemDataBase.GetItemData()[i].GetItemSprite(); } else { item[i].transform.GetChild(0).GetComponent <Image>().enabled = false; item[i].transform.GetChild(0).GetComponent <Button>().interactable = false; } item[i].transform.GetChild(0).GetComponent <ItemButton>().SetItemNum(i); } }
private GameObject[] item; // アイテムボタンを入れておくゲームオブジェクト // ゲームオブジェクトがアクティブになったとき実行 void OnEnable() { statusWindowStatus = Camera.main.GetComponent <StatusWindowStatus>(); statusWindowItemDataBase = Camera.main.GetComponent <StatusWindowItemDataBase>(); item = new GameObject[statusWindowItemDataBase.GetItemTotal()]; // アイテム総数分アイテムボタンを作成 for (var i = 0; i < statusWindowItemDataBase.GetItemTotal(); i++) { item[i] = GameObject.Instantiate(itemPrefab) as GameObject; item[i].name = "Item" + i; // アイテムボタンの親要素をこのスクリプトが設定されているゲームオブジェクトにする item[i].transform.SetParent(transform); // アイテムを持っているかどうか if (statusWindowStatus.GetItemFlag(i)) { // アイテムデータベースの情報からスプライトを取得しアイテムボタンのスプライトに設定 item[i].transform.GetChild(0).GetComponent <Image>().sprite = statusWindowItemDataBase.GetItemData()[i].GetItemSprite(); } else { // アイテムボタンのUI.Imageを不可視にし、マウスやキー操作で移動しないようにする item[i].transform.GetChild(0).GetComponent <Image>().enabled = false; item[i].transform.GetChild(0).GetComponent <Button>().interactable = false; } // ボタンにユニークな番号を設定(アイテムデータベース番号と対応) item[i].transform.GetChild(0).GetComponent <ItemButton>().SetItemNum(i); } }
void OnEnable() { GetComponent <CanvasGroup>().interactable = false; statusWindowStatus = Camera.main.GetComponent <StatusWindowStatus>(); itemController = GameObject.FindGameObjectWithTag("Player").GetComponent <ItemController>(); statusWindowItemDataBase = Camera.main.GetComponent <StatusWindowItemDataBase>(); item = new GameObject[statusWindowItemDataBase.GetItemTotal()]; for (var i = 0; i < statusWindowItemDataBase.GetItemTotal(); i++) { if (statusWindowItemDataBase.GetItemData()[i].GetItemType() == StatusWindowItemDataBase.Item.UseItem || !itemController.GetItemFlag(i) && !statusWindowStatus.GetItemFlag(i)) { continue; } item[i] = GameObject.Instantiate(equipButtonPrefab) as GameObject; item[i].name = "EquipItem" + i; item[i].transform.SetParent(transform, false); item[i].transform.GetChild(0).GetComponent <Image>().sprite = statusWindowItemDataBase.GetItemData()[i].GetItemSprite(); item[i].transform.GetChild(0).GetComponent <Button>().interactable = true; item[i].transform.GetChild(0).GetComponent <EquipItemButton>(). SetStatusWindowItemData(statusWindowItemDataBase.GetItemData()[i]); } }