所以我已经问过这个问题上的统一论坛,但没有帮助我很多:/。今天,我决定让朋友试试我的游戏,所以基本上我创建了一台服务器,以便其他客户/朋友可以连接到它。在玩了我的游戏大约20分钟后,我迅速检查了任务管理器,并且我的游戏使用了大约3.5 GB的RAM! PHOTO HERE当我看着日志,说什么这样的: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。游戏运行时,每秒RAM大约需要3MB。我在Internet上发现了关于Resources.UnloadUnusedAssets的一些信息,但我不知道如何编写这样的脚本!我知道如何在C#中编写,但只有像GUI,Newtorkinf,Physics等简单的脚本。我也从kickasstorrent下载了统一的专业版,只能看到Profiler窗口,但这完全没有帮助我
非常感谢任何回复! 另外,如果你想查看游戏并看看发生了什么:http://gamejolt.com/games/thuglifealpha/61660
再次感谢! :)
这个问题将很难解决,因为它看起来像只有弄清楚发生了什么事情是我们看到的源代码。在您的代码中查找数组。像'myclass = new Myclass [10];'在更新循环中。在“开始”功能中执行一次,然后重新使用它。你是从很多脚本做'myclass = new Myclass()'吗?你是否通过附加脚本来实例化GameObjects?如果是这样,停下来学习对象池。用'foreach'循环遍历'List'?改为使用'for'循环。还有许多其他可能的问题。没有代码,很难提供帮助。 – Programmer
我真的不明白你的意思:myclass = new Myclass对不起,我很抱歉。但我只用了一年的统一,所以我还是初学者。但我发现,使用方法(已经提到)卸载纹理和资产一些人,但我无法找到任何脚本到,我不知道该怎么做,你了解这写这些类型的脚本?而且我也有一个脚本,大概有3500行,我试图删除这个脚本并构建游戏,但RAM仍在增长。我将所有纹理的大小从1024更改为256像素,但仍然没有结果。老版本的游戏工作正常。 –
Unity 5免费版本的功能与Pro的所有功能非常相似,因此您可以免费使用分析器。添加探查内存选项卡的一些截图(点击需要的内存快照太) – mgear