概要
ネットワークマルチプレイを実現できるUnityNetcodeに興味があってちょっと試してみたい!という方に向けて書いた記事です。
本文
パッケージをインストールする
Unityで新規プロジェクトを作成します。次にメニューからWindow > Package Managerと辿って「Netcode for GameObjects」をインストールします。
Netcodeには二種類ありますがECSに対応した「Netcode for Entities」は今回扱いません。「Netcode for GameObjects」を選んでください。
NetworkManagerを作成
Hierarchyで右クリック > Create Emptyを選択して「NetworkManager」を作成します。InspectorからAddComponentを押したらNetwork Managerを選択します。
追加されたNetwork Managerコンポーネントを見てみると「netcodeにはUnity Transportが必要です」と警告が表示されています。その下の「Select transport...」を押して「UnityTransport」を選ぶと自動でUnity Transportを追加してくれます。
netcode上で操作するプレイヤーキャラクターのPrefabを用意します。
Project上で右クリック > Create > Prefabを選び、「NetworkPlayer」を作成します。
そしてAddComponentから「NetworkObject」を選択します。(これが無いと実行時にエラーが表示されます)
NetworkManagerのPlayer Prefab欄にNetworkPlayerをアタッチします。
実行
ここまで準備出来たら、後は実行します。HierarchyのDontDestroyOnLoadの中にNetworkManagerがあるので選択します。NetworkManagerコンポーネント内のStartConnectionにある「StartHost」を押すとNetworkPlayerが画面上に登場します。これでネットワーク上にプレイヤーキャラクターが登場しました
今回はここまでの紹介ですが、(StartClientを選んで)他のプレイヤーも接続されたらお互いのキャラクターが確認できる状態になります
3Dオブジェクトを設定したらこんな感じにわかりやすくなると思います!(ニワトリプレイヤーが登場しました)
今回のNetworkManagerのStartConnectionボタンは簡易的なテスト用のものなので、実際にはコード上から接続処理をする事になります。
UnityNetcode関連記事目次
1.UnityNetcodeをちょっと触ってみたい人用の記事 ←
2.UnityNetcodeでマルチプレイヤーを試してみる記事
3.UnityNetcodeのマルチプレイヤーで位置を同期してみる
4.UnityNetcodeのマルチプレイヤーで変数を同期してみる