問題タブ [unet]
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.
c# - UNET - 前のスポットから現在のスポットに移動した後、プレイヤー以外のオブジェクトが前後にグリッチする
私は Unity で Unet を使用しており、基本的にオブジェクトをピックアップしてシーン内を移動し、サーバー上の全員に表示しようとしています。ホストでオブジェクトを正常に生成でき、クライアントとホストの両方がオブジェクトを見ることができます。
ただし、クライアントとしてオブジェクトを生成できますが、ホストには表示されません。オブジェクトを移動する限り、ホストはオブジェクトを移動でき、クライアントはホストがオブジェクトを移動していることを認識します。これは、Assign and Remove Authority メソッドを使用して行います。ただし、クライアントがホストのオブジェクトを移動しようとすると、サーバーにも表示されません。ただし、クライアントがオブジェクトを「移動」した後にホストがオブジェクトを再度移動しようとすると、オブジェクトは基本的に、ホストも移動している場所とクライアントが最後に配置した場所の間を繰り返しジャンプします。
それが理にかなっており、誰かが私を助けてくれることを本当に望んでいました. プレーヤー コントローラー スクリプトのコードをいくつかリストしました。
c# - クライアントが Unet でコマンドを実行していない
編集
カプセルに剛体コンポーネントを追加することで、問題を部分的に解決しました。サーバー上を移動するには、明らかにそれが必要であるとどこかで読みました。
問題 2
私が抱えている次の問題は、クライアントによってスポーンされたカプセルを正常に移動できるようになり、ホストはそれを好きなだけ何度でも移動できることです。私が今得ている問題は、ホストがカプセルをスポーンするときに、クライアントがそれをまったく動かすことができず、クライアント側で一種のグリッチ効果が発生し、カプセルがまだホスト側で動かないことです。一方向にしか機能せず、逆方向には機能しない理由はありますか? 最初は Spawn と SpawnWithClientAuthority に関係があるのではないかと思っていましたが、違いはないようです。
プロジェクトの概要
私は非常に単純なマルチプレイヤー プロジェクトを持っています。私がやりたいのは、1 つのプレイヤー ホストを持ち、もう 1 つをクライアントとして参加させることだけです。それらが結合されると、2 人のプレイヤーがカプセルをスポーンし、ユーザーがカプセルをクリックすると、カプセルがスポーンされます。彼らはそれを拾ってシーン内を移動できる必要があり、他のプレイヤーはこのアクションを見ることができる必要があります. 両方のプレイヤーをサーバーに接続して独自のカプセルをスポーンさせることができ、両方のプレイヤーがこれを見ることができます。モーションスクリプトも同様に実行されます。ただし、ホスト側でのみ送信されます。クライアントがオブジェクトを取得しても、サーバー上では更新されません。
問題
少しデバッグを行ったところ、クライアントでコマンドを呼び出したときに、改行や単純なデバッグ ステートメントによってコマンドがまったく実行されていないことがわかりました。
コード
質問
このコマンドを正しく呼び出していますか? スクリプトはプレーヤー プレハブにアタッチされ、カプセル プレハブにはネットワーク ID とネットワーク トランスフォームが含まれます。私は Unet にかなり慣れていないので、これは初歩的なミスのように感じます。