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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

1回答

3220閲覧

Unity Materialのテクスチャを動的に変更したい。

URqK77hwuGvArSr

総合スコア16

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2019/12/09 11:24

前提・実現したいこと

UnityでランタイムでWindowsのピクチャファイルから画像を動的に読み込み、マテリアルのMainTexに設定したいです。

発生している問題・エラーメッセージ

 以下のコードを書いたところテクスチャを読み込むことには成功したもののUnityのエディタ上のinspectorで該当のMaterialを一度開かないと反映されません

 おそらくエディタ上でinspectorで見ることで何らかの更新が行われていると感じますが、実際のアプリケーション内ではテクスチャが反映されないので困っています。

 一度Materialを開かなくても反映させる方法を教えてください。

該当のソースコード

C#

1 private Material material; 2 //wwwクラスでpictureファイルから画像のパスを取得する。 3 public void setTexture(WWW www) 4 { 5     material = Resources.Load<Material>("Materials/Opaque/OpaqueSampleOff") as Material; 6 texture = www.texture; 7 material.mainTexture = texture; 8 }

補足情報

Unity 2019.2.9

UWPアプリケーションとして作成しています。

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

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

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

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

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

guest

回答1

0

Resources.LoadはUnityプロジェクト内のResourcesフォルダ内のファイルを読み込むので、
「WWWで画像取得→その画像をResourcesフォルダに配置→インスペクタを触る(ここでエディタ更新が入って読み込み完了する)→Resources.Load出来るようになる」
という流れが必要です。

Resources.Loadを介さず、取得した画像をそのまま反映させれば動くと思います。(以下一例)
Unity でテクスチャに使う画像をネイティブ側で読み込んでみた(低レベルネイティブプラグインインターフェース編) - 凹みTips
(ミップマップやらメモリリークやら罠が色々あるので「unity www テクスチャ」などでググって色々調べてください)

投稿2019/12/10 01:29

sakura_hana

総合スコア11425

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問