/// <summary> /// アイテム説明のセット /// </summary> void SetItemDescription() { for (int i = (int)LocalizeScriptableObject.LocalizeText.NoItemDescription; i < (int)LocalizeScriptableObject.LocalizeText.EnumLength; i++) { //NOTE:配列が1から始まる(上記の最初の???の分)のに対し、アイテム説明は0から始まらないので、その差分を引いた int itemNum = i - (int)LocalizeScriptableObject.LocalizeText.NoItemDescription; itemDescription.SetItemDescription(itemNum, localizeText[i]); } //ローカライズした瞬間だけアイテムボタンを押さなくてもローカライズさせる itemDescription.OnClickDescription(itemDescription.GetSelectingNum()); }
List <GameObject> buttons = new List <GameObject>(); //作ったボタンのリスト /// <summary> /// 開始処理 /// </summary> void Start() { //アイテムボタンをを複製して、スクロールビューオブジェクトの子にする。 for (int i = 0; i < ItemManager.ItemNum; i++) { //AddListener はアクションを渡す必要があるので、ラムダ式で簡単な無名関数を作って渡すようにする int index = i; GameObject duplicateButton = Instantiate(originalButton); duplicateButton.GetComponent <Button>().onClick.AddListener(() => itemDescription.OnClickDescription(index)); duplicateButton.transform.parent = scrollViewContent.transform; duplicateButton.transform.localScale = new Vector3(1, 1, 1); buttons.Add(duplicateButton); } //スプライトアトラスの名前習得 for (int j = 0; j < atlasKey.Length; j++) { atlasKey[j] = GetAtlasKey(j); } //ボタンが生成されているなら if (buttons.Count == ItemManager.ItemNum) { //ボタンのアイテムゲット for (int i = 0; i < ItemManager.ItemNum; i++) { Image buttonImage = buttons[i].transform.FindChild("ItemImage").GetComponent <Image>(); //各アイテムボタンのイメージ GameObject newItemText = buttons[i].transform.FindChild("NewImage").gameObject; //New!!というテキスト //ゲットしているなら実態、していないならシルエットのみ if (itemManager.GetIsHasItem(i)) { buttonImage.sprite = existenceSpriteAtlas.GetSprite(atlasKey[i]); //テキスト表示 if (itemManager.GetIsNewText(i)) { newItemText.SetActive(true); } } else { buttonImage.sprite = existenceSpriteAtlas.GetSprite(atlasKey[i]); buttonImage.color = Color.black; } } } }