###実現したいこと
ScrollView内に追加したノードのImageが
枠内をはみ出さないようにしたいと思っております。
###前提
VR空間内にアイコンが描かれたPlaneを追加できるようにしています。
追加したPlaneの情報を列挙するために、
VR空間内のメニュー画面の中のScrollViewに
Planeの情報を列挙します。
ScrollViewの内容は以下の通りです。
ノードの情報としてテキスト型の「Number」とImage型の「MarkingKind」を持っています。
アイコンは数種類から選ぶことができ、
追加された際にMarkingKindを選択したアイコンのマテリアルに変更します。
1種類のノード(Prefab化済)のマテリアルを切り替えます。
###発生している問題
ノードを追加していくと、Imageで作成している部分が下図のように
ScrollViewの範囲をはみ出してしまいます。
左側のテキスト部分は枠内にきちんと収まっております。
どうすればテキスト部分と同じようにImageも枠内からはみ出さずに
表示できるでしょうか?
###該当のソースコード
C#
1 // Nodeを追加する 2 var item = Instantiate(Node) as RectTransform; 3 item.SetParent(NodeParent.transform, false); 4 // Node情報更新 5 Text text = item.GetComponentInChildren<Text>(); 6 if (text.name == "Number") 7 { 8 // Nodeの名前を変更 9 // リストのインデックスを選択する 10 // 1からカウント 11 text.text = string.Format("No.{0}", MarkingList.Count); 12 } 13 item.name = text.text; 14 15 foreach(Image image in item.GetComponentsInChildren<Image>()) 16 { 17 if(image.name == "MarkingKind") 18 { 19 // マテリアルを変更(アイコンの画像が変わる) 20 image.material = MaterialList[MaterialIndex]; 21 Color c = plane.GetComponent<Renderer>().material.color; 22 image.material.color = new Color(c.r, c.g, c.b, c.a); 23 break; 24 } 25 } 26
MaterialListには以下の通りアテリアルが割り当てられています。
1種類のノードに対してマテリアルを割り当て直すのではなく、
4種類のノードを作成し、それを追加仕分ける方が
よいでしょうか?
できればPrefabにするノードは一つにしたいと考えているのですが……。
ScrollViewのMarkingKindに割り当てた際は以下のようになっています。
###補足情報(言語/FW/ツール等のバージョンなど)
Unity 2017.1.1f1
Visual Studio 2015/2017
###参考にしたHP
uGUIのScrollViewを使いこなす7つのTips
http://q7z.hatenablog.com/entry/2016/12/03/000027
UnityのuGUIでスクロールビューを作る
http://tsubakit1.hateblo.jp/entry/2014/12/18/040252

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/30 05:35 編集