我在 Mac 上使用 Unity3D 3.x 版制作联网电脑游戏。我有一个游戏客户端和一个游戏服务器。每当数据从服务器到达客户端时,客户端会冻结一点(约 0.5 秒),呈现新数据,然后继续。有什么办法可以优化我的游戏,使传入的数据不会影响用户与游戏客户端的交互?
这就是我现在正在做的事情:
- 我创建了一个新线程来从服务器中提取数据。
- 当数据到达时,我把它放在一个受互斥锁保护的缓冲区中。
- 在 Unity 线程中,在每一帧上,我都会检查缓冲区是否为空。如果不为空,则等待互斥锁获得处理数据的权限。一旦获得许可,我就会解析数据并渲染它。
我这样做是因为 Unity 不允许我GameObject
在我创建的网络线程中创建新的 s。但我想知道我是否可以做些什么来优化用户体验。