facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
行17: 行17:
 
==リストの部品がずれる場合==
 
==リストの部品がずれる場合==
 
#prefub部品をダブルクリックして、RectTransformのTopとBottomを0にしてprefubを作り直す。
 
#prefub部品をダブルクリックして、RectTransformのTopとBottomを0にしてprefubを作り直す。
#ContentのHeightを3000とかに広げる(選択できない場合は、ContentSizeFilterのチェックを外す)
+
#"Scroll View/Viewport/Content"にAddComponentsで、VerticalLayoutGroupを追加する
 +
#そこにprefubのインスタンスを生成する
 +
 
 +
 
 +
==リストの部品がずれる場合(NGパターン==
 +
以下パターンだと、コンテンツが入らなかったり、スクロールが戻されたりして失敗する
 +
#ContentSizeFilterのチェックを外すとか
 +
#ContentのHeightを3000とかに以下のようにプログラムで広げるとか
  
 
ContentのHeightを動的に変更
 
ContentのHeightを動的に変更
 
  GameObject panel = GameObject.Find("/Canvas/Scroll View/Viewport/Content/Panel");
 
  GameObject panel = GameObject.Find("/Canvas/Scroll View/Viewport/Content/Panel");
 
  panel.GetComponent<RectTransform>().sizeDelta = new Vector2(w, h);
 
  panel.GetComponent<RectTransform>().sizeDelta = new Vector2(w, h);

2019年2月28日 (木) 22:06時点における版

リストのUIを作る

unity/UIScrollView [ショートカット]

  1. リスト内の部品はPanelで作ってprefub化する
  2. prefubはAssets/Resourcesにいれる

参考:https://tech.pjin.jp/blog/2016/08/30/unity_skill_3/

prefubを画面にロード

unity/3d [ショートカット]]

リストの部品(panel)をprefubからロードする

Instantiateのunity公式: https://docs.unity3d.com/jp/current/ScriptReference/Object.Instantiate.html

リストの部品がずれる場合

  1. prefub部品をダブルクリックして、RectTransformのTopとBottomを0にしてprefubを作り直す。
  2. "Scroll View/Viewport/Content"にAddComponentsで、VerticalLayoutGroupを追加する
  3. そこにprefubのインスタンスを生成する


リストの部品がずれる場合(NGパターン

以下パターンだと、コンテンツが入らなかったり、スクロールが戻されたりして失敗する

  1. ContentSizeFilterのチェックを外すとか
  2. ContentのHeightを3000とかに以下のようにプログラムで広げるとか

ContentのHeightを動的に変更

GameObject panel = GameObject.Find("/Canvas/Scroll View/Viewport/Content/Panel");
panel.GetComponent<RectTransform>().sizeDelta = new Vector2(w, h);