6

アセットバンドルが実際にどのように機能するかについて多くの情報を見つけるのに苦労しています。ゲーム ビルドでアセット バンドルを管理する方法についての説明が見つかりません。

AssetBundles基本的に、プロジェクトウィンドウにというフォルダーがあります。このフォルダーに配置したすべてのアセットは、ビルド ディレクトリ (GameName/Data/AssetBundles など) 内のフォルダーに AssetBundles としてビルドされ、必要に応じて読み込まれます。

しかし、私がゲーム自体を構築するとき、ゲームビルドでアセットバンドルで使用されているこれらの資産を含めないことを知っていますか?

編集:私はいくつかの進歩を遂げました。

私の理解では、ビルド設定にあるシーンに存在するアセットのみがゲーム ビルドでビルドされます。スクリプトは常にゲーム ビルドでビルドされます (これを回避する方法があるかどうかはわかりませんが、私にとっては問題ではありません)。

だから私は、ゲームのスタートアップ オブジェクトとして機能するゲーム ビルドにある単一のシーンを持っています。DontDestroyOnLoadこのシーンには、 で指定された Asset Manager スクリプトがありますAwake

私のアセット マネージャー スクリプトは基本的に、バンドル、アセット、およびインスタンスのロード/アンロードを処理するだけです。

現在、シーンのアセット バンドルの構築方法についてはよくわかりません。を使用して動作させていますLoadAllAssetsLoadLevel、複数のシーンがいくつかのアセットを共有している場合はどうなりますか? シーン ビルドは、共有可能なアセットのコピーを持って肥大化しますか? Unity 5 では依存関係が自動的に処理されると読みましたが、それがこれに関係しているかどうかはわかりません。

4

2 に答える 2

2

Unity 5 でアセットバンドルをさまざまな方法で使用するサンプル プロジェクトを含む以下の投稿を見つけました。

http://forum.unity3d.com/threads/new-assetbundle-build-system-in-unity-5-0.293975/

シーンのビルド/ロードの例が含まれており、正しく動作しているようです (依存関係が自動的に決定されるため、効率のために共有アセット バンドル (または独自のバンドル) で共有アセットをビルドするだけで済みます)。

ビルドで私が別の方法で行っていた唯一のことは定義ですAssetBundleBuild(基本的に、アセットがアセットバンドル名に関連付けられたサブフォルダーに格納されるようにプロジェクトフォルダーを整理し、ビルド時にこれらのフォルダーをチェックして追加します)。

なんらかの理由で、エディター UI でアセット バンドル機能を使用すると、依存関係が壊れているように見えます (すべてのアセットのバンドルに手動で名前を付ける..いくつかの異なるバンドルに何百ものアセットがある場合、これは少し面倒です)。 ) そしてBuildAssetBundlesbuilds 引数なしで使用します。

元の質問に対する答えはまだありませんIs it necessary to exclude assets being used in AssetBundles from game build?

しかし安全のために、ゲーム ビルドで実際にビルドされているシーンは 1 つだけです。そのシーンには、アセット バンドルを処理するアセット マネージャー スクリプトがあり、ロード時に破棄されません。すべてのシーンをアセット バンドルとして持っている場合、他のシーンを構築する必要はありません。

于 2015-09-20T01:54:29.313 に答える