Unity15

Unity

リストビュー

リストビューを作成してみよう。

プロジェクトの作成

*ListViewLessonというプロジェクトを2Dで作成する。

カメラの設定

*カメラを選択して以下のように背景を設定する。

*ゲームタブを開いて、アスペクトを2:3にする。

Canvasの設置

*プロジェクトビューから新規にCanvasを作成し、以下のように設定する。

リストビューの作成

*Canvasの子要素にPanelを作成し、ListViewとリネームする。

*ListViewのRectTransformを以下のように設定する。

*ListViewがスクロールできるように設定する。AddComponentからUI->MaskとUI->ScrollRectを付与する。
ScrollRectのHorizontalのチェックは外す

*ListViewの子要素としてPanelを作成し、Cellsとリネームする。

*CellsのRectTransformを以下のように設定する。

*CellsにAddComponentからLayout->ContentSizeFitterとLayout->VerticalLayoutGroupを付与し、以下のように調整する。
ContentSizeFitter:自分の子要素によって自分の大きさを自動調整する
VerticalLayoutGroup:自分の子要素たちを垂直方向に整列させる。
ContentSizeFitterに出ている警告はVerticalLayoutGroupをつけることで解消できている。(VerticalLayoutGroupを外すとうまく機能しない)

*ListViewのScrollRectにCellsを登録する。

セルの作成

リストビューの準備ができたので一つ一つのセルを作成する。
*Cellsの子要素としてPanelを作成し、Cellとリネームする。

*CellのRectTransformは以下

*下から2枚の画像をダウンロードして、アセットにD&Dする。


*Cellの子要素としてImageを作成し、IVthumbとリネームする。

*IVthumbのRectTransformを調整し、manの画像を貼り付ける。

*Cellの子要素としてUI->Textを作成し、TVnameとリネームし以下のように設定する。

*同様にCellの子要素としてUI->Textを作成し,TVscoreとリネームし以下のように設定する。

確認

ここまででこんな感じになってればOKだ。

プレファブ化

*作成したCellをプレファブにし、ヒエラルキーからは削除する。

CellsControllerの作成

*CellsController.csを以下のように作成し、Cellsに付与する。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CellsController : MonoBehaviour
{
    public GameObject prefab;
    public Sprite[] sprites;
    // Start is called before the first frame update
    void Start()
    {
        for(int i = 0; i < 20; i++) {
            GameObject cell = Instantiate(prefab);
            cell.transform.SetParent(transform, false);
            Image image = cell.transform.Find("IVthumb").GetComponent<Image>();
            image.sprite = sprites[i % 2];
            Text name = cell.transform.Find("TVname").GetComponent<Text>();
            name.text = "name" + i;
            Text score = cell.transform.Find("TVscore").GetComponent<Text>();
            score.text = i * 1000 + "";
        }
    }

    
}

インスペクターからの設定

実行

実行してみよう。最初の動画のようにスクロールするリストビューができればOKだ。

コメント

タイトルとURLをコピーしました