memomem

備忘録・メモ置き場

Unity, Mirrorでの実装に関してメモ

syncVar

server, clientともに共通して使うパラメータはsyncVarを付けるのが良い。

serverでのみ変更可能。

clientから値を変更する場合

Commandを使ってclientから実行 > その関数内でClientRpcを使ってserverから全clientへ実行

例えば、チャットでメッセージを送る場合

// clientからserverに対して実行
[Command(requiresAuthority = false)]
void CmdSend(string message, NetworkConnectionToClient sender = null)
{
        RpcReceive(connNames[sender], message.Trim());
}

// serverからすべてのclientに対して実行
[ClientRpc]
void RpcReceive(string playerName, string message)
{
        string prettyMessage = playerName == localPlayerName ?
        $"<color=red>{playerName}:</color> {message}" :
        $"<color=blue>{playerName}:</color> {message}";
        AppendMessage(prettyMessage);
}