Unity是单线程然后为什么统一webgl说资产包在主线程中加载 - 空宝网


Unity是单线程然后为什么统一webgl说资产包在主线程中加载

游戏开发 本文已被144人看过 本文被 0次点赞

Unity确实运行多个线程,但不在WebGL中运行。

标准统一和大多数支持多线程的目标平台都将使用多线程。如果你曾经让你的游戏冻结并听到音频继续播放,那就是原因。有一个音频线程,一个渲染线程,一个游戏逻辑线程,我认为是一个物理线程(但我不是百分之百)。并发游戏引擎设计是一个复杂的主题,因为我正在学习构建自己的引擎,所以我不会解释每个线程如何工作。重要的是要知道你只需要在主线程中工作。实际上,只要不调用unity函数,就可以编写多线程库。例如,我写了一个库,用于通过蓝牙解析joycon输入。该库在单独的线程记录和时间戳输入上运行,然后在Unity的更新周期中,
Unity的WebGL支持是……缺乏。在移植一个重大项目时,我经历了许多痛苦。首先,它根本不能正确处理音频。通常在音频中,您的声卡能够一次输出X个声音。换句话说,X个不同的声音。但是很多游戏都有超过X个声音,所以统一会将声音混合成一个声音,有时候只是不能同时播放声音。这是音频源中的优先级字段。在WebGL中它不支持这一点,如果你一次播放太多声音,音频就会崩溃。尝试编写一次播放X音频源的脚本。增加X,构建,在选择的浏览器上运行。根据浏览器和计算机,该数字会有所不同。我碰到的最低价是macbook。如果你的游戏中有很多声音(比如一堆单位/角色在战斗中尖叫)那么你将不得不编写自己的系统,这是很多工作。您收集的WebGL也不支持多线程。
资产包基本上是WebGL所必需的。在标准环境中,您将游戏保存在磁盘上,然后在运行时,将所需资源加载到RAM中以便快速访问。在WebGL中,你只有RAM。你只能得到~1GB。你可以去更多,但你会很快遇到兼容性问题。如果您是从头开始制作游戏,请为此做好准备。我建议让每个场景成为资产包。您可以使用unity的AssetBundleBrowser来执行此操作。文档非常不准确,但在捆绑时会包含依赖项。如果发现“构建”按钮不起作用,那么您可以为它编写自己的脚本。我会忽略细节,因为它很容易发布信息,但是很难找到什么做不起作用,所以我只是在描述我的粗略过程。从那里确保每个场景小于~750mb。Unity需要一些空间来运行,并消耗掉一些宝贵的记忆。如果你正在移植,你可能不得不压缩你的资产中的爱他妈的。音频和视觉。按照unity的webGL指南了解压缩类型。然后,您可以使用加载屏幕获取资产包。使用AssetBundle API而不是WWW,因为WWW会加载两倍的内存,因为它会下载,然后解压缩。AssetBundle会在下载时解压缩,从而最大限度地减少内存峰值。我不能把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。并消耗掉一些珍贵的记忆。如果你正在移植,你可能不得不压缩你的资产中的爱他妈的。音频和视觉。按照unity的webGL指南了解压缩类型。然后,您可以使用加载屏幕获取资产包。使用AssetBundle API而不是WWW,因为WWW会加载两倍的内存,因为它会下载,然后解压缩。AssetBundle会在下载时解压缩,从而最大限度地减少内存峰值。我不能把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。并消耗掉一些珍贵的记忆。如果你正在移植,你可能不得不压缩你的资产中的爱他妈的。音频和视觉。按照unity的webGL指南了解压缩类型。然后,您可以使用加载屏幕获取资产包。使用AssetBundle API而不是WWW,因为WWW会加载两倍的内存,因为它会下载,然后解压缩。AssetBundle会在下载时解压缩,从而最大限度地减少内存峰值。我不能把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。用于压缩类型的webGL指南。然后,您可以使用加载屏幕获取资产包。使用AssetBundle API而不是WWW,因为WWW会加载两倍的内存,因为它会下载,然后解压缩。AssetBundle会在下载时解压缩,从而最大限度地减少内存峰值。我不能把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。用于压缩类型的webGL指南。然后,您可以使用加载屏幕获取资产包。使用AssetBundle API而不是WWW,因为WWW会加载两倍的内存,因为它会下载,然后解压缩。AssetBundle会在下载时解压缩,从而最大限度地减少内存峰值。我不能把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。把资产包的所有陷阱都放在一个回复中,但希望这将有助于解决我遇到的一些更困难的问题。不要忘记跟踪您正在播放的音频源数量。


喜欢 (0)
[请支持作者一杯咖啡,谢谢]
分享 (0)


您必须 登录 才能发表评论!