問題タブ [unity-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
885 参照

unity3d - In Unity how do you send a message (sync a var, call a command) from Client to server without using the player object

I have a multiplayer unity game (actually it is a two player game),
One player runs as host and the second one connects as client.
But I want to client to choose which scene to load.
Which means I need to either use a [Command] to do so.
But I run into client authority issues and get this error: Trying to send command for object without authority.

If I try to set the objects local authority I get: AssignClientAuthority can only be call on the server for spawned objects.

Even if I remove the authority and reset it it ends up with the same owner.

I have tried sending messages using SendAll too.

So is there another way that I am missing?

0 投票する
2 に答える
1537 参照

c# - Unet/Unity 5 の別の対話可能なオブジェクトから変更された非プレイヤー オブジェクトの変換を同期しますか?

ゲーム内にキューブがあり、別のオブジェクトを見ているときに、初期状態とより大きな状態の間を行き来します。これはシングル プレイヤーでは問題なく動作しますが、マルチプレイヤーに持ち込むと、両方のクライアント (1 つはホスト) で更新するための適切なオプションの組み合わせが見つかりません。各プレイヤーは自分のキューブをアクティブ化できますが、他のマシンには表示されません。スクリプトは、ネットワーク ID を持つボタン上にあり、ネットワーク ID とネットワーク変換も持つキューブにアクセスします。

シングル プレイヤー コード リファレンス:

0 投票する
2 に答える
862 参照

unity5 - 非プレイヤーオブジェクトからすべてのプレイヤーのスコアをカウントする方法

Unity 5.4 と c# でロケット リーグ タイプのゲームを作ろうとしています。

プレーヤーの作業とプレイエリアはすべて揃っています。プレーヤーはネットワーク スポーナーによってスポーンされ、ボールはチュートリアルの敵スポーナーのようにボール スポーナーによってスポーンされます。ボールが衝突し、ボールの位置がリセットされる 2 つの目標があります。しかし、ゴールがあったことを選手にどのように伝えればよいでしょうか? 私はいたるところを見てきましたが、ボールからプレーヤーに情報を渡す方法の良い例が見つかりません。すべてのプレーヤーのカメラに表示され、スコアをカウントする 2 つの変数を使用するテキスト UI があるので、ボールがゴールに衝突したときにボールを介してこれらの変数を何らかの形で増やしたいと考えています。

RPC呼び出しは、私が理解しているようにプレーヤーオブジェクト間でのみ機能し、ボールとプレーヤーの間にsyncvarsを使用しようとすると機能しないようです.誰かが何かヒントを持っているか、私が欠けているものを教えてもらえますか?

編集:同じ問題を抱えている人のために。これを解決するには、scoreManager オブジェクトを作成し、それに syncvars としてスコアを持たせました。それから、scoremanager コンポーネントとそのスクリプトを取得し、ボールでスコアを上げてから、プレーヤーのためにそれを取得してスコアを取得しました。

0 投票する
0 に答える
333 参照

c# - Unity Networking: クライアントが最初にシーンをロードすると、ネットワーク化されたオブジェクトがクライアントに表示されない

マルチプレイヤー ゲームでオブジェクトのインスタンス化に問題があります。ゲームのレイアウトはシンプルです。プレイヤーはロビーに入り、全員が準備完了をマークすると、カウントダウンとゲーム レベルのロードのLobbyManager呼び出しが行われます。ServerChangeScene(gameScene)問題は、多くの負荷で、ネットワーク化されたすべてのオブジェクトがクライアント上でインスタンス化されないことです。client少しプレイ テストを行った後、これはがサーバーの前にシーンをロードしたときにのみ発生するように見えることに気付きました。serverロードが最初にすべて正しく表示され、ゲームが正常にプレイされるときです。サーバーが最初に読み込まれるようにする方法はありますか?

参照用のコード: