はじめに
前回まででNetcodeの基本的な使い方を学び、簡単なゲームを作れるようになりました。
今回からはインターネット越しに通信ができるようにしていきます。
はじめに説明した通り本講座ではインターネット越しで通信を行うためにSteamの機能を使います。
今回はとりあえずSteamで動かすために必要な準備を行います。
Steamworks.NETの導入
Steamworks.NETをUnityに導入します。
Unityのパッケージマネージャーからインストールすることができます。
Unityのメニュー>Window>PackageManagerからパッケージマネージャーを開きます。
左上の+ボタンから「Add package from git URL…」を選択します。
出てきたテキストボックスに以下のURLを入力し、Addボタンを押してください。
https://github.com/rlabrecque/Steamworks.NET.git?path=/com.rlabrecque.steamworks.net
左上のメニューを「Packages: In Project」に変更してパッケージが追加されたか確認します。
Steamworks.NETというパッケージがあれば成功です。
次にプロジェクト直下に「steam_appid.txt」という名前のテキストファイルを作成します。
作成したテキストファイルを開き「480」という数値のみを書いて保存してください。
以上でSteamworks.NETの導入は完了です。
先ほどsteam_appid.txtというファイルを作り480という数値だけを記述しました。
この数値はSteamで販売するゲームに割り振られているAppIdです。
480番というのはテスト用のAppIdになっており、開発用に使うことができます。
販売する際はこちらの数値を自分のゲームのAppIdに変更しましょう。
SteamManagerを追加
Steamworksの機能を使うには初期化やコールバックの呼び出しなど、必ず実装しないといけないものがあります。
Steamworks.NETのサンプルに最低限の必須項目が実装されたSteamManagerというスクリプトがあるので、そちらを使わせてもらいましょう。
下記ページのスクリプトをダウンロードまたはコピーしてSteamManger.csというスクリプトを作成してください。
そしてタイトルシーンにSteamMangerというゲームオブジェクトを作成してSteamMangaer.csをアタッチしましょう。
これでSteamworksの機能が使う準備が完了しました。
スクリプトに以下のusingを追加すると、Steamworksの機能が使えます。
using Steamworks;
NetcodeのSteamworks用プラグインを導入
現在はNetcodeで通信を行う際にUnityTransportというものを使用していました。
これではSteamworksを使った通信ができないので専用のTransportに変える必要があります。
Steam用のTransportが用意されているパッケージがこちらです。
こちらをパッケージマネージャーからインストールしましょう。
手順はSteamworks.NETのときと同じです。
Unityのメニュー>Window>PackageManagerからパッケージマネージャーを開きます。
https://github.com/Unity-Technologies/multiplayer-community-contributions.git?path=/Transports/com.community.netcode.transport.steamnetworkingsockets
左上のメニューを「Packages: In Project」に変更してパッケージが追加されたか確認します。
SteamNetworkingSockets…という長い名前のパッケージがあれば成功です。
NetworkTransportを変更
NetworkTransportをSteamworks用へ変更します。
先ほどのプラグインを入れるとSteamNetwokingSocketsTransportというコンポーネント追加されています。
すでにNetworkManagerオブジェクトに付いているNetworkTransportコンポーネントを削除して、こちらをアタッチしましょう。
そしてNetworkManagerのNetworkTransportの項目がNoneになっているので、今追加したコンポ―ネントを設定します。
以上でNetworkTransportの変更が完了しました。
まとめ
今回はSteamで動かすための準備を行いました。
次回いよいよインターネット上で通信対戦が行えるようになります!
次回が最終回です。あと少し頑張りましょう!
👇あなたにお勧めの書籍
次回↓
コメント