Netcode for GameObjects
導入
参考:
Netcode for GameObjects を使ったオンラインマルチプレイゲーム開発 Tips | Colorful Palette
HelloWorld チュートリアルを改造しつつ触ってみた | Activ8 Tech Blog
使い方
参考:
Netcode for GameObjects で VR マルチプレイゲームを作る | 土鍋で雑多煮
Netcode for GameObjects での値の共有方法まとめ | やまゆ
Network Manager
ドキュメント:
NetworkManager | Netcode for GameObjects 2.12 Manual [Official]
NetworkManager | Unity 2023.2 マニュアル [公式]
Network Variables
ドキュメント:
NetworkVariables | Netcode for GameObjects | 2.12 Manual [Official]
参考:
NetworkVariable を使ってパラメータを共有する | あのゲームの作り方
Network Prefab List
参考:
Network Prefab List not working – reddit
RPC
ServerRPC
旧表記
[ServerRpc]
public void ExampleServerRpc(float x)
{
Debug.Log("Runs on server");
}Code language: C# (cs)
新表記
[Rpc(SendTo.Server)]
public void ExampleServerRpc(float x)
{
Debug.Log("Runs on server");
}Code language: C# (cs)
ClientRPC
旧表記
[ClientRpc]
public void ExampleClientRpc(float x)
{
Debug.Log("Runs on clients");
}Code language: C# (cs)
新表記
[Rpc(SendTo.ClientsAndHost)]
public void ExampleClientRpc(float x)
{
Debug.Log("Runs on clients");
}Code language: C# (cs)
ドキュメント:
Remote procedure calls (RPCs) | Netcode for GameObjects 2.12 Manual [Official]
RPC | Netcode for GameObjects 2.12.0 Manual [Official]
RPC Params | Netcode for GameObjects 2.12 Manual [Official]
Migrate from UNet to Netcode for GameObjects | Netcode for GameObjects 2.12.0 Manual [Official]
参考:
RpcParams を利用して RPC を受けるクライアントの選択を行う | デニッキ!
Netcode for GameObjects について調べたメモ | これちの Post-it
使い分け
- NetworkVariable: 永続的な状態を同期する
- RPC: 一時的なイベントを通知する
ドキュメント:
RPC vs NetworkVariable | Netcode for GameObjects 2.12 Manual [Official]
OnDestroy
参考:
NetworkList を使うとメモリリークが発生してしまう症状の解決方法 | てぷと
OnDestroy / OnNetworkDestroy / isServer – Unity Discussions
RequireOwnership
Server RPC で使用されていた RequireOwnership プロパティは NGO 2.7 以降で廃止された。
旧表記
[ServerRpc(RequireOwnership = false)]
private void ExampleServerRpc(float x)
{
Debug.Log("Runs on server");
}Code language: C# (cs)
新表記
[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
private void ExampleServerRpc(float x)
{
Debug.Log("Runs on server");
}Code language: C# (cs)
ドキュメント
Netcode for GameObjects | Unity Manual [Official]
チュートリアル
Netcode for GameObjects を使ってみよう (Unity Japan)
サンプルで学ぶ co-op ゲームの作り方 (Unity Japan)
Complete Multiplayer Tutorial (Code Monkey)
Project Setup (Dilmer Valecillos)