問題タブ [assetbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - iOS のアセットバンドル: メモリが常に増加し、クラッシュが発生する
アセットバンドルは Amazon S3 バケットに保存されています。ゲームが開始されると、WWW.LoadFromCacheOrDownload を使用して、新しいバージョンをダウンロードする必要があるバンドルが決定されます。
私たちが直面している問題は、iOS がアプリに割り当てたメモリのレポートが増え続けていることですが、Unity が (プロファイラーを通じて) 使用しているとレポートするメモリは常に同じままです。必要なものすべてのダウンロードが完了するまでに十分な数のバンドルがあり、常に iOS からメモリ警告を受け取り、すぐにメモリ不足のためにシャットダウンされます。
一般的な解決策としては、WWW の終了後にアセットバンドルをアンロードする、assetBundle.unload() を使用する、Resources.UnloadUnusedAssets() を呼び出す、および WWW で Dispose() を呼び出すことです。どれも問題を解決していません。
コードは次のとおりです。
- 編集 -
メモリ使用量の増加を示すスクリーンショットは、以下のリンクにあります。メモリ使用量は、約 150MB になるまでこのように進みます。これはすべて、init スクリプト用の GameObject しかない (アートも何もない) シーンの中にあります。
https://www.dropbox.com/s/3b6skexz6xhug5g/Screenshot%202014-03-28%2014.54.26.png
c# - アセット バンドルに入れられる Unity スクリプトでパブリック変数を使用する方法
この質問を検索したところ、関連する多くの情報が見つかりましたが、いくつかの矛盾があり、明確な答えはありません。
Unity プロジェクトで、スクリプト (C#) を持つゲーム オブジェクトを含むアセット バンドルを作成しています。私はそれを行う方法を学びました、そしてそれはうまくいきます。
私の問題は、最終的には、アセット バンドルを構築する前に割り当てられたスクリプト内のパブリック変数の値を保持する必要があることです。つまり、私のプレハブにはパブリック変数を持つスクリプトがあります。インスタンスごとに異なるパブリック値を使用して、何度もインスタンス化します。アセット バンドルの旅を乗り切るには、これらすべてが必要です。
したがって、私の現在のプロセスは次のとおりです。
- ゲーム オブジェクトからスクリプトを削除します。
- スクリプトをアセンブリにビルドする
- ゲーム オブジェクトとアセンブリをアセット バンドルにパックする
- バンドルを新しいプロジェクトにダウンロードする
- アセット バンドルを解凍し、ゲーム オブジェクトをインスタンス化する
- スクリプト アセンブリをゲーム オブジェクトにアタッチするには、
AddComponent()
問題はステップ 1 です。バンドルする前にゲーム オブジェクトからスクリプトを削除します。そうしないと、解凍時に、参照されているスクリプトが見つからないというエラーが表示されます。また、ステップ 6 はAddComponent
それをアタッチするために使用するため、そのスクリプトが既にアタッチされたコンポーネントである場合、実際にそれを行うことはできません。したがって、バンドルする前にそれらを削除すると、これらの問題が解決します。
私は何が欠けていますか?私の方法はどこに問題がありますか?バンドルすると、パブリック値がゲーム オブジェクトのスクリプト リファレンスに保存されると読みましたが、もちろん、スクリプト コンポーネントを削除すると、それが失われます。
では、資産のバンドル プロセスを通じて公共の価値を維持するにはどうすればよいでしょうか。バンドルする前にスクリプト コンポーネントを削除すべきではありませんか? もしそうなら、スクリプトを別の方法で管理するにはどうすればよいですか? スクリプト アセンブリとソース ファイルの両方をバンドルする必要がありますか? (現在、アセンブリのみをバンドルしています)、アセンブリをアタッチするときに冗長性が生じませんか?
unity3d - サーバー上のアセットバンドル Unity
クラウド上の Unity で Assetbundle を作成する人はいますか? クラウド上で AssetBundle を動的に生成したいのですが、それに応じてクライアント アプリがそれをダウンロードします。
あなたのアイデアを教えていただけますか?Unity をホストするためのクラウド サービスはありますか?
unity3d - .tga または .png 画像ファイルを Unity3d のディスクにエクスポートします
Unity で .png または .tga ファイルをローカル ディスクにエクスポートするコードを使用する方法はありますか? アセット バンドルを読み込んで元のソース イメージ ファイルに変換するコンバーターを作成する必要があります。たとえば、誰でも Photoshop で開くことができるように、これらのファイルを作成する必要があります。それを行う方法について何か考えはありますか?
ありがとう。デビッド
c# - Unity3d ロード中のアセットバンドル
Unity3d AssetBundles を試しています。オブジェクトを含むシーンを読み込もうとしています。アセット バンドルを作成するためのこの簡単なコードがあります。
上記のコードを使用して、カメラと立方体が中央にあるシーンからアセット バンドルを構築します。
そして、私はそれをロードするためのこのコードを持っています:
問題は、loadAll に到達したときに停止するようです。
誰かがこれで私を助けてくれれば幸いです。
どうもありがとう