3

プレーヤーがサーバーに接続するたびに、選択した名前がRPCに転送され、RPCによってすべてのプレーヤーのゲームオブジェクトが更新されるようにしようとしています。しかし、これは次のエラーをもたらすようです:

'setPlayerName'パラメーター0(UnityEngine.GameObject)がサポートされていないため、RPCの送信に失敗しました。

これは私のコードです:

void OnConnectedToServer() {
    GameObject newPlayer = (GameObject)Network.Instantiate(newPlayerPrefab, new Vector3(0,0,0), Quaternion.identity, 0);
    networkView.RPC("setPlayerName", RPCMode.AllBuffered, newPlayer);
}

[RPC]
void setPlayerName(GameObject newPlayer) {
    newPlayer.name = "Player_" + playerName;
}

これが新しくスポーンされたプレイヤーのgameObject名前を変更する正しい方法ではない場合は、方法を教えてください。それが実際には正しい方法です。

4

1 に答える 1

0

GameObjectはNetworkView.RPCのパラメーターとしてサポートされていません...サポートされているパラメーターの種類は次のとおりです。

http://docs.unity3d.com/Documentation/Components/net-RPCDetails.html

(ドキュメントに記載されていないbyte []を使用することもできます)

代わりに、プレーヤーの名前を文字列として送信し、サーバーにゲームオブジェクトの作成を処理させることができます。

于 2013-03-20T17:08:01.740 に答える