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);
     }
 }
Esempio n. 2
0
    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]);
     }
 }