|
|
| (同じ利用者による、間の14版が非表示) |
| 行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
| + | |
| − | | + | |
| − | ==リストの部品がずれる場合==
| + | |
| − | #prefub部品をダブルクリックして、RectTransformのTopとBottomを0にしてprefubを作り直す。
| + | |
| − | #prefub部品をダブルクリックして部品の中央をずらす。再度、prefubを作り直す。
| + | |
| − | | + | |
| − | ==リストの部品がずれる場合(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にする
| + | |