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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

400閲覧

Assetにあるプレファブから画像を表示させたい

saAsectron36

総合スコア27

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/12/13 05:01

編集2017/12/13 06:30

GameObject(kamasu)からInspector参照でAssetにあるCanvasをインスタンス化させて配下にあるRawImageコンポーネントのRawImage画像をスクリプトで表示させたいのですが上手くいきません。
AssetにあるCanvasプレファブは名前横のチェックボックスがついている状態でプレファブ化されているにも関わらず、表示されない不思議な状態であります。
もちろん、HierarchyのCanvasを有効状態にすると表示できています。

疑問に思うにAssetのCanvasプレファブ配下のRawImageにあるphotosスクリプトのpublic参照が絵的に失われてはいないですが、参照できていないような、もしくはスクリプト自体が機能してないような気もします。
つまり、kamasuにAssetのCanvasを参照させる形式でどうしたらスクリプトで画像が表示されるようになるでしょうか?

このような症状を分かる方いましたら、お助け頂けると幸いですm(__)m

Hierarchy
イメージ説明
Canvasの子オブジェクトのRawImage
イメージ説明
Canvasをインスタンス化させる為のGameObject
イメージ説明

//photos.cs using UnityEngine; using UnityEngine.UI; public class photos : MonoBehaviour { public Texture croco; //試験的にcrocoのみ表示させる public Texture hippopo; public Texture giraffe; public Texture lion; public Texture elephant; public Texture kitten; // Use this for initialization void Start () { GameObject.Find("RawImage").GetComponent<RawImage>().texture = croco; } //kamaseru.cs public class kamaseru : MonoBehaviour { public GameObject kmasu; //InspectorからCanvasを参照させる // Use this for initialization void Start () { GameObject display = Instantiate(kmasu, transform.position, transform.rotation) as GameObject; //コードが抜けていた為、追記 } }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2017/12/13 06:02

このコードだと「kamaseru」が何もしていないことになります。「kamaseru」が「kmasu」をインスタンス化している処理はありますでしょうか?
saAsectron36

2017/12/13 06:34 編集

ご回答ありがとうございます。すいません、記入が抜けてましたので追記しました。インスタンス化処理はStart()にGameObject display = Instantiate(kmasu, transform.position, transform.rotation) as GameObject;です。しかしながらcrocoが表示されません。。
guest

回答1

0

ベストアンサー

「kmasu」にプレハブではなく、シーン上の無効にしているCanvasを設定しているため、無効の状態のCanvasが複製されているからだと思われます。
シーン(Hierarchy)にあるCanvasではなく、Projectにあるプレハブのファイルを「kmasu」に指定してください。
また、この場合、シーン上で無効にしてあるCanvasは不要なので、削除していいでしょう。

投稿2017/12/13 06:43

fiveHundred

総合スコア9778

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saAsectron36

2017/12/13 06:55

上手くいきました。おっしゃる通りでHierarchyのCanvasが参照されてました。気づけてよかったです。ありがとうございましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問