facebook twitter hatena line email

「Unity/リスト表示」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(リストの部品がずれる場合)
 
(同じ利用者による、間の12版が非表示)
行1: 行1:
==リストのUIを作る==
+
[[Unity/リスト表示/通常]]
[[unity/UIScrollView]] [ショートカット]
+
  
#リスト内の部品はPanelで作ってprefub化する
+
[[Unity/リスト表示/使いまわし]]
#prefubはAssets/Resourcesにいれる
+
 
+
参考:https://tech.pjin.jp/blog/2016/08/30/unity_skill_3/
+
 
+
==prefubを画面にロード==
+
参考:[[unity/3d]] [ショートカット]
+
 
+
リストの部品(panel)をprefubからロードする
+
# Ui/Panelを生成し、Textやボタンなどを貼り付ける
+
#Assets/Resourcesの中にPanelをドラッグするとprefubができる
+
#以下のようにインスタンスを生成する
+
 
+
GameObject prefab = (GameObject)Resources.Load("HogePanel");
+
Vector3 position = new Vector3(x, y, z);
+
GameObject obj = Instantiate(prefab, position, Quaternion.identity);
+
obj.name = "HogePanel1";
+
 
+
#"Scroll View/Viewport/Content"にAddComponentsで、VerticalLayoutGroupを追加する
+
#VerticalLayoutGroupのControlChildSizeにチェック入れる。
+
#VerticalLayoutGroupのspacingを200とかいれて間隔を空ける
+
 
+
参考:http://tsubakit1.hateblo.jp/entry/2017/06/15/020309
+
 
+
参考:https://teratail.com/questions/111392
+
 
+
Instantiateのunity公式:
+
https://docs.unity3d.com/jp/current/ScriptReference/Object.Instantiate.html
+
 
+
==リストの部品がずれる場合==
+
#prefab部品をダブルクリックして、RectTransformのTopとBottomを0にしてprefabを作り直す。
+
#prefab部品をダブルクリックして部品の中央をずらす。再度、prefabを作り直す。
+
 
+
==リストの部品がずれる場合(NGパターン==
+
以下パターンだと、コンテンツが入らなかったり、スクロールが戻されたりして失敗する
+
#ContentSizeFitterのチェックを外すとか
+
#ContentのHeightを3000とかに以下のようにプログラムで広げるとか
+
 
+
ContentのHeightを動的に変更
+
GameObject panel = GameObject.Find("/Canvas/Scroll View/Viewport/Content/Panel");
+
panel.GetComponent<RectTransform>().sizeDelta = new Vector2(w, h);
+
 
+
==リストの高さが狭い時==
+
VerticalLayoutGroupのspacingを200とかいれて間隔を空ける
+
 
+
==リストのスクロールが下に行かない場合==
+
#ScrollViewのViewportのContentの下にAddComponentでContentSizeFitterを追加
+
#ContentSizeFitterのVerticalfitをUnconstrainedからPreferredSizeにする
+

2022年10月24日 (月) 01:39時点における最新版

Unity/リスト表示/通常

Unity/リスト表示/使いまわし