ClientRpc
属性を使用して、ネットワーク経由でさまざまな基本型の配列を送信しようとしています。ドキュメントには、問題なくネットワーク経由でこれらを送信できると記載されています。
- 基本型 (byte、int、float、string、UInt64 など)
- 基本型の配列
ただし、それらを配列に混在させるとobject[]
うまくいかないようです。次の例があります。
[Command]
void CmdForwardEvent(string eventName, object[] args) {
Debug.Log ("Broadcasting event: " + eventName);
foreach (var o in args) {
Debug.Log ("arg-class: " + o.GetType() + ": " + o);
}
RpcForwardEvent (eventName, args);
}
[ClientRpc]
void RpcForwardEvent(string eventName, object[] args) {
Debug.Log ("Received event " + eventName);
foreach (var o in args) {
Debug.Log ("arg-class: " + o.GetType() + ": " + o);
}
}
void Update() {
if (Input.GetKeyDown (KeyCode.P)) {
CmdForwardEvent("Testevent", new object[]{"some string", 1, false});
}
}
サーバー上で、出力を取得します
Broadcasting event: Testevent
arg-class: System.String: some string
arg-class: System.Int32: 1
arg-class: System.Boolean: false
クライアントでは、これはエラーなしで到着します。
Received event: Testevent
arg-class: System.Object: System.Object
arg-class: System.Object: System.Object
arg-class: System.Object: System.Object
ClientRpc 呼び出しを介して、さまざまな基本型を持つさまざまな量の引数を送信するにはどうすればよいですか?