unity3dのネットワークエンジンunetを使用して、ネットワーク経由でgameObjectのリストを同期しようとしています。リストはサーバー上で初期化され、オブジェクトが追加されます。私はこのリストをすべてのプレイヤー間で同期させて、1人のプレイヤーがそれを追加した場合、そのプレイヤーがネットワーク上で更新され、プレイヤーがそのアイテムをネットワーク上で更新するようにします。私はclientRPCまたはコマンドを使用するはずですが、私は具体的に使用する方法を理解することができません。このようなリストを同期させることができる良い例はありません。もし誰かが正しい方向に私を指すことができれば、それは素晴らしいだろう。Unity3d Unet sync gameObjectリスト
1
A
答えて
1
リストを操作したいクライアントは、サーバー上でコマンドを実行する必要があります。コマンドは、すべてのクライアントにリストの操作方法を伝えます。すべてのプレイヤーオブジェクトに以下のNetworkBehaviourがあるとします(これらのプレイヤーオブジェクトのそれぞれには、それぞれのクライアントにLocal Player Authorityがあります)。
public void ListManipulator : NetworkBehaviour
{
public void AddToList(GameObject obj)
{
if (!isLocalPlayer)
throw new InvalidOperationException("This can only be called for the local player!");
if (obj.GetComponent<NetworkIdentity>() == null)
throw new InvalidOperationException("Network only knows about GameObjects that have a NetworkIdentity!");
CmdAddToList(obj);
}
[Command]
void CmdAddToList(GameObject obj)
{
// this code is only executed on the server
RpcAddToList(obj); // invoke Rpc on all clients
}
[ClientRpc]
void RpcAddToList(GameObject obj)
{
// this code is executed on all clients
localCopyOfList.Add(obj);
}
}
すべてのクライアントにリストのローカルコピーがあることに注意してください。localCopyOfList
。
また、対象オブジェクトにNetworkIdentityコンポーネントがあることを保証できない場合は、代わりに名前やIDなどを指定して、追加または削除するアイテムを通知することができます。
+0
本当に助けてくれてありがとう、私は今それを得たと思う。 – MJC
関連する問題
- 1. Unity3d HLAPI、Unet、ネットワーク対応のスポイリング
- 2. unity3d - UNETでローテーションを転送できません
- 3. Unity3d unet - クライアントから発信されたTargetRPCコール
- 4. UNET:ユニティエディタとアプリケーション
- 5. スクリプトからGameObjectコンポーネントを有効/無効にする[Unity3D]
- 6. unity3dのタグで非アクティブなgameobjectを見つけた
- 7. unity3dで回転行列を適用してgameObjectを回転
- 8. UNETライブラリサーバとの互換性
- 9. マルチラベルイメージセグメンテーションUnet
- 10. 他のオブジェクトを含むリストのUnity GameObject
- 11. Unity3D-他のgameobjectの変数の値を取得できません
- 12. ユニティ5 UNETマルチプレイヤーコード
- 13. UNet randomly disconnects
- 14. UNETのUIボタン
- 15. Unet。マルチプレイヤー車両
- 16. unet Unity 3d
- 17. Unity3D C#ランダムIntジェネレータ
- 18. Kerasモデル - Unet Image Segmentation
- 19. ユニティ[UNET]シンクノンプレイヤーオブジェクト変換
- 20. Unet Unity islocal player error
- 21. コンポーネントgameObjectからコンテナgameObjectにアクセス
- 22. GameObjectスムーズなJavaの次のGameObject
- 23. GameObject transform.Rotate()
- 24. Blink GameObject
- 25. UNET - オブジェクトはネットワーク経由で同期されますが、テキストコンポーネントは
- 26. unity3d - NullReferenceException UnityEngine.MonoBehaviour.StartCoroutine
- 27. UNetクライアントの切断エラー:NetworkClient.ConnectのCRCMismatch
- 28. uNet独立したクライアント/サーバ
- 29. Unity UNet MMOスタイル専用サーバメソッド
- 30. 壁を破壊するunity3d
synclist [here](http://docs.unity3d.com/Manual/UNetStateSync.html)を見つけることができます。 –