【发布时间】:2013-07-02 23:30:48
【问题描述】:
我在 Mac 上使用 Unity3D 3.x 版制作联网电脑游戏。我有一个游戏客户端和一个游戏服务器。每当数据从服务器到达客户端时,客户端会冻结一点(约 0.5 秒),呈现新数据,然后继续。有什么办法可以优化我的游戏,使传入的数据不会影响用户与游戏客户端的交互?
这是我现在正在做的事情:
- 我创建了一个新线程来从服务器中提取数据。
- 当数据到达时,我将它放在一个受互斥锁保护的缓冲区中。
- 在 Unity 线程中,在每一帧上,我都会检查缓冲区是否为空。如果不为空,则等待互斥锁获得处理数据的权限。获得许可后,我会解析数据并进行渲染。
我这样做是因为 Unity 不允许我在我创建的网络线程中创建新的GameObjects。但我想知道我是否可以做些什么来优化用户体验。
【问题讨论】:
-
你应该使用 WWW 类在统一内从网络中检索东西,它会帮助你优化。
-
嗨@AlexanderBrevig,不幸的是
WWW课程不适合我。为了这个项目的研究目的,我必须自己做网络部分,而不是依赖 Unity 提供的东西。
标签: multithreading performance rendering unity3d