一分間Unity講座のアイキャッチ画像
一分間Unity講座のアイキャッチ画像

1分間 Unity講座 Dropdown の活用2 Dropdownリストに配列で用意した選択肢をセットする方法 - ファイブボックス

1分間 Unity講座 Dropdown の活用2 Dropdownリストに配列で用意した選択肢をセットする方法

このブログはUnityの初心者向けに、Untiyの機能の使い方、基本のスクリプトファイルの使い方から応用までをご説明しています。中級以上の方に読んでいただきたい内容も随時更新していますので、お時間がある方、検索でここにアクセスされた方はぜひ立ち寄っていってください。

前回の記事、Dropdownツールの活用方法第一弾 の続き、今回はドロップダウンのリスト、つまり選択肢をスクリプトファイルから指定する方法についてご説明します。

下の動画は、その詰め込みすぎた「ファイブボックス 一分間Unity講座 Dropdownの活用方法2」 のショート動画です。ご興味がございましたら、こちらの動画もご参照ください。

コンポーネントとプロパティ

今回スクリプトファイルから変更したいのは、ドロップダウン展開前のタイトルのテキスト、およびドロップダウンの選択肢リストの部分です。

スクリプトファイルから変更する部分

Inspectorで変更のプロパティを確認すると以下の2つです。

  • DropDownのDropdownコンポーネント:Optionsプロパティ
  • LabelのTextコンポーネント:Textプロパティ
変更するコンポーネントとプロパティを確認

スクリプトファイルの作成

作成済みのコード確認

前回のブログで作成したスクリプトファイルを利用します。スクリプトファイル:DropdownManager.cs は Canvas にアタッチされて、すでに以下のコードができています。

※先のブログでは変数に [SerializeField] を指定して、inspectorから取得していますが、下のサンプルではStart関数で初期値を取得しました。

using UnityEngine;
using UnityEngine.UI;

public class DropDownManager : MonoBehaviour
{
    Text text;             //Textを管理
    Dropdown dropdown;     //Dropdownを管理
    
    void Start()
    {
        //textに初期値を代入
        text = transform.Find("Text").GetComponent<Text>();
        //dropdownに初期値を代入
        dropdown = transform.Find("Dropdown").parent.GetComponent<Dropdown>();
    }

    public void ChangeText() //DropdownのOnvalueChangedにAssign
    {
        //textの文字をdropdownのoptionsの選択された番号番目にする
        text.text = dropdown.options[dropdown.value].text;
    }
}

配列の用意

選択肢リストはstring型(文字列型)の配列で用意しておきます。今回はトランプの記号を使用しますが、任意の数の選択肢を指定してください。

string[] option = new string[4]    //文字列型の配列を用意し、選択肢を代入
{
    "スペード","ハート","ダイヤ","クラブ"
};

テキストとリストの指定

Start関数で初期値の指定を行います。

void Start()
{
   //前半記述済み
    text = transform.Find("Text").GetComponent<Text>();
    dropdown = transform.Find("Dropdown").parent.GetComponent<Dropdown>();
    //dropdownの子要素のLabelを探して、テキストを指定
    dropdown.transform.Find("Label").GetComponent<Text>().text 
    = "記号を選択";
    //配列optionの要素数だけ繰り返し
    for(int i = 0; i < option.Length; i++)
    {
        //optionsのi番目のテキストを配列のi番目に指定
        dropdown.options[i].text = option[i];
    }
}

これを起動するだけでタイトルの文字、および選択肢のリストが更新されます。


ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

TOP