私はすでにユニティフォーラムでこの質問をしましたが、それはあまり役に立たなかった:/。今日私はゲームを友人と試してみることにしました。基本的に私はサーバーを作り、他のクライアント/友人がそれに接続できるようにしました。私のゲームをプレイして約20分後にクラッシュし、私はすぐにタスクマネージャーをチェックし、私のゲームは約3.5GBのRAMを使用していました!Unity-スタンドアロンのビルドがメモリ不足のため
Unity Player [version: Unity 4.6.1f1_d1db7a1b5196]
mono.dll caused an Access Violation (0xc0000005)
in module mono.dll at 0023:101071a1.
Error occurred at 2016-07-04_163050.
C:\Users\Cooler Master\Desktop\TL\TL.exe, run by Cooler Master.
77% memory in use.
0 MB physical memory [1814 MB free].
0 MB paging file [1039 MB free].
0 MB user address space [68 MB free].
Write to location 00000000 caused an access violation.
だから私のゲームで私のRAMを食べ続けるものがある:PHOTO HERE私はログを見たときには、このようなものを言いました。ゲームが実行されている場合、1秒あたり約3MBのRAMが必要です。 Resources.UnloadUnusedAssetsについてインターネット上の情報をいくつか見つけましたが、そのようなスクリプトを書く方法はわかりません!私はC#で書く方法を知っていましたが、GUI、Newtorkinf、Physicsなどの簡単なスクリプトだけでした。また、kickerstorrentからunity proをダウンロードしてプロファイラーウィンドウを表示しましたが、それは全く助けになりませんでした。
ありがとう任意の返信! ゲームをチェックアウトして何が起こっているのかを確認したい場合:http://gamejolt.com/games/thuglifealpha/61660
もう一度ありがとう! :)
の最適化についての記事を読むことをお勧めします私たちは、ソースコードを参照するためのものです。コード内の配列を探します。 'myclass = new Myclass [10];'のようなものです。それを 'Start'関数で一度行い、それを再利用してください。多くのスクリプトから 'myclass = new Myclass()'をやっていますか? GameObjectsにスクリプトを添付してインスタンス化していますか?その場合は、オブジェクトのプーリングについては中止してください。 'foreach'ループで' List'をループしますか?代わりに 'for 'ループを使用してください。他にも多くの問題があります。コードなしでは、助けが難しいです。 – Programmer
私は本当にあなたが何を意味するかは分かりません:myclass = new Myclassしかし、私は1年しか団結していないので、まだ初心者です。しかし、私はいくつかの人々が(すでに述べた)テクスチャと資産をアンロードするが、私はそれにスクリプトを見つけることができないと私はこの種のスクリプトを書く方法を知らないことを発見したこれについて何か知っていますか?また、私はそのスクリプトを削除しようとしたが、ゲームを構築しようとしたが、RAMはまだ上昇している約3500行のものは、1つのスクリプトを持っています。私はすべてのテクスチャのサイズを1024から256pxに変更しましたが、まだ結果はありません。古いバージョンのゲームは正常に動作しています。 –
Unity 5の無料版は、プロとしての機能をすべて備えているので、無料でプロファイラを使用できます。プロファイラメモリタブのスクリーンショットを追加してください(メモリスナップショットをクリックしても) – mgear