【Unity】マルチプレイゲーム制作入門!第6回~Steamで動かす準備~

講座トップに戻る

はじめに

前回までで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というスクリプトを作成してください。

https://github.com/rlabrecque/Steamworks.NET-Example/blob/master/Assets/Scripts/Steamworks.NET/SteamManager.cs

そしてタイトルシーンにSteamMangerというゲームオブジェクトを作成してSteamMangaer.csをアタッチしましょう。

これでSteamworksの機能が使う準備が完了しました。

スクリプトに以下のusingを追加すると、Steamworksの機能が使えます。

using Steamworks;

NetcodeのSteamworks用プラグインを導入

現在はNetcodeで通信を行う際にUnityTransportというものを使用していました。

これではSteamworksを使った通信ができないので専用のTransportに変える必要があります。

Steam用のTransportが用意されているパッケージがこちらです。

https://github.com/Unity-Technologies/multiplayer-community-contributions?path=/Transports/com.community.netcode.transport.steamnetworkingsockets

こちらをパッケージマネージャーからインストールしましょう。

手順は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で動かすための準備を行いました。

次回いよいよインターネット上で通信対戦が行えるようになります!

次回が最終回です。あと少し頑張りましょう!

👇あなたにお勧めの書籍

次回↓

コメント