質問: ### 前提・実現したいこと Unityでいわゆる音楽ゲームを作っています。 その譜面(多数のノーツ(ゲームオブジェクト)を子に持つゲームオブジェクトを、自由度や、扱いの良さから、.prefabファイルで管理し、 外部から、自由に追加し、ゲームからロードし、ゲームオブジェクトとしてInstantiateしたいと考えています。 もちろん、prefabが参照するスクリプトなどはビルドに組み込まれています。 ### 試したこと 実現する手段として、Streaming Assetsや、Resourceフォルダなどについて調べましたが、 StreamingAssetsを用いるには、Asset Bundleの理解が必要で、一日かけても理解が及びませんでした。 また、Resourceフォルダも、ビルドすると専用形式にコンパイルされているようで、ランタイムで追加などの操作は厳しいと判断しました。 ### 知りたいこと 外部からプレハブを読み込むのに、ここまで複雑な手段は必要なのでしょうか。 ランタイム時に、外部からプレハブを読み込む、なるべくシンプルな、よりよい手段はあるのでしょうか。 もしご存じであればご教授お願いします。
回答: 質問と全く関係ないですが > > StreamingAssetsを用いるには、Asset Bundleの理解が必要で > > > StreamingAssetsとAssetBundleは**全く関係ありません**。 Unityだとビルド時に、ファイルを設定に応じて適宜変換されますが、StreamingAssetsはその変換を避けるために使用します。 テキストファイルなどをそのまま読み書きしたいときに使用します。 なお、ビルド後にStreamingAssetsにファイルを追加することは出来ませんので、この方法で外部ファイルを読み込んで追加するようなことは出来ません。 (とはいえ、Application.persistentDataPathやApplication.temporaryCachePathに保存すれば、ほぼ同じように扱えるので、特に問題はないとは思いますが) 対して、AssetBundleは後付けでプレハブなどを追加するのに使用します。 今回はテキストファイルで大丈夫だと思いますが、3Dモデルやプレハブ化したファイルはこの方法でしか読み込めないので、余裕があれば理解しておくのがよろしいかと思います。