我在Mac上制作使用Unity3D版本3.x的联网电脑游戏。我有一个游戏客户端和一个游戏服务器。无论何时数据从服务器到达客户端,客户端都会冻结一点点(〜0.5秒),呈现新数据,然后继续。有什么方法可以优化我的游戏,以便传入的数据不会影响用户与游戏客户端的交互?Unity3D:通过网络加载资产时的平滑交互?
这里是我现在在做什么:
- 我创建了一个新的线程来从服务器获取数据。
- 当数据到达时,我把它放在一个受互斥锁保护的缓冲区中。
- 在Unity线程中,在每一帧上,我检查缓冲区是否为空。如果它不是空的,我会等待互斥锁以获得处理数据的权限。一旦获得许可,我就解析数据并进行渲染。
我这样做是因为Unity不允许我在创建的网络线程中创建新的GameObject
。但我想知道是否有什么我可以做的,以优化用户体验。
您应该使用WWW类检索的事情了统一的范围内的网络,它会帮助你优化然后。 – AlexanderBrevig
嗨@AlexanderBrevig,不幸的是'WWW'类不适合我。对于这个项目的研究目的,我必须自己完成网络部分,而不是依赖Unity提供的内容。 – CherryQu