質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

ScrollViewで追加したノードのImageがはみでてしまう

ichi_goo
ichi_goo

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0リアクション

0クリップ

587閲覧

投稿2017/10/26 11:07

###実現したいこと
ScrollView内に追加したノードのImageが
枠内をはみ出さないようにしたいと思っております。
イメージ説明

###前提
VR空間内にアイコンが描かれたPlaneを追加できるようにしています。

追加したPlaneの情報を列挙するために、
VR空間内のメニュー画面の中のScrollViewに
Planeの情報を列挙します。

ScrollViewの内容は以下の通りです。
ノードの情報としてテキスト型の「Number」とImage型の「MarkingKind」を持っています。
ScrollViewの内容

アイコンは数種類から選ぶことができ、
追加された際にMarkingKindを選択したアイコンのマテリアルに変更します。
1種類のノード(Prefab化済)のマテリアルを切り替えます。

###発生している問題
ノードを追加していくと、Imageで作成している部分が下図のように
ScrollViewの範囲をはみ出してしまいます。
左側のテキスト部分は枠内にきちんと収まっております。

どうすればテキスト部分と同じようにImageも枠内からはみ出さずに
表示できるでしょうか?
イメージ説明
###該当のソースコード

C#

// Nodeを追加する var item = Instantiate(Node) as RectTransform; item.SetParent(NodeParent.transform, false); // Node情報更新 Text text = item.GetComponentInChildren<Text>(); if (text.name == "Number") { // Nodeの名前を変更 // リストのインデックスを選択する // 1からカウント text.text = string.Format("No.{0}", MarkingList.Count); } item.name = text.text; foreach(Image image in item.GetComponentsInChildren<Image>()) { if(image.name == "MarkingKind") { // マテリアルを変更(アイコンの画像が変わる) image.material = MaterialList[MaterialIndex]; Color c = plane.GetComponent<Renderer>().material.color; image.material.color = new Color(c.r, c.g, c.b, c.a); break; } }

MaterialListには以下の通りアテリアルが割り当てられています。
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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。