Mac で Unity3D バージョン 3.x を使用して、ネットワーク接続されたコンピューター ゲームを作成しています。ゲームクライアントとゲームサーバーがあります。データがサーバーからクライアントに到着するたびに、クライアントは少しの間 (~0.5 秒) フリーズし、新しいデータをレンダリングしてから続行します。着信データがユーザーのゲーム クライアントとのやり取りに影響しないように、ゲームを最適化する方法はありますか?
これが私が今していることです:
- サーバーからデータをプルするための新しいスレッドを作成しました。
- データが到着したら、相互排他ロックで保護されたバッファーに入れます。
- Unity スレッドでは、すべてのフレームで、バッファーが空かどうかを確認します。空でない場合は、相互排他ロックでデータを処理する許可を待ちます。許可を得たら、データを解析してレンダリングします。
GameObject
Unity では、作成したネットワーク スレッドで新しい を作成できないため、これを行っています。しかし、ユーザー エクスペリエンスを最適化するために何かできることはないかと考えています。