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

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

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

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

Unity

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

Q&A

1回答

9359閲覧

AssetBundle読込みでモデルがピンク色に(Shader missing)

azu1129

総合スコア8

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2017/01/13 02:22

編集2017/01/13 02:30

###前提・実現したいこと

Unity5.4.2f2で作成したAssetBundleを、最新版のUnity5.5.0f3で読み込みたいと思っています。
作成と読込みには、どちらもAssetBundleManagerアセット(直近のもの)を使用しました。

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

このように、shaderが読めずピンク色になります。

Shader missing

###上記が発生した手順

AssetBundleManagerアセットのAssetLoaderサンプルに付属のcube-bundleを

  1. 5.4.2f2でAssetBundleを作成
  2. 5.5.0f3で読込み

しました。

若干サンプルコードと違う点は、AssetBundleはローカルに置いたのでLoadAssets.csを下記のように読み込み方を変えました。

C#

1AssetBundleManager.SetSourceAssetBundleURL("file://c:/AssetBundle" + "/");

###疑問

http://www.slideshare.net/MakotoItoh/kansai-cedec

のスライドによると、Unity5(少なくとも5.3以降)はmanifestファイルによって互換性が保たれると思ったのですが、やはり5.4->5.5のようなメジャーバージョンアップではAssetBundleの再作成は必須になるのでしょうか。

###その他 試したこと

stackoverflowやUnityAnswer等で検索すると assetbundle shader pink等のキーワードで幾つかヒットしますが、決定的な情報を見つけることが出来ませんでした。

ご回答・アドバイスよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

シェーダーを付け直すことで解決します。
また、自分の場合、端末にビルドすると発生しなくなりました。
Unityのエディタのみで発生するのではないかと思われます。

投稿2017/01/13 02:57

kitamura

総合スコア14

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

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

azu1129

2017/01/13 03:02

ご回答ありがとうございます。 >シェーダーを付け直すことで解決します。 付け直すべきシェーダーの名前が残っているものでしょうか。 >Unityのエディタのみで発生するのではないかと思われます。 書き漏れていましたが、Windows64でビルドした状態でも同様でした。
kitamura

2017/01/13 05:58

自分の場合は、マテリアルのシェーダーの情報が残っていました。 windows用に書き出したことがないため詳しくわかりませんが Buildinのシェーダーの設定を見直してみると良いかもしれないです。
azu1129

2017/01/17 01:11 編集

> 自分の場合は、マテリアルのシェーダーの情報が残っていました。 おそらくRendererコンポーネントのsharedMaterials[].shader.name だと思いますが、わたしのケースだと空文字列になっていました・・ 仕方ないのでShadeer.Find("Standard")を当て込むと上手く表示されましたが、Standard以外の場合だと困ってしまいますね・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問