Linux サーバ上で、サーバとして実行できるようにする。
前述のとおり、ホスト・サーバ・クライアントの 3 種類があり、ホスト=サーバ+クライアントである。
ローカルでの開発はホストとクライアントで OK だけど、実際に多人数で遊ぶためには、サーバがあるのが良い。
シーン内に空の GameObject をつくって、ServerManager として、ServerManager スクリプトを作ってアタッチ。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ServerManager : MonoBehaviour { void Start() { #if UNITY_SERVER Debug.Log("Start Server"); MLAPI.NetworkingManager.Singleton.StartServer(); #endif } }
一番簡単なので、接続設定を固定で埋め込む。NetworkingManager についている Unet Transport の Connect Address を「127.0.0.1」からサーバの IP アドレスを入れておく。この辺はアプリから自由入力できるようにしたいな。

サーバ用のビルドは、Unity Hub で Linux Build Support(Mono) をインストールして、Target Platform を Linux、Server Build にチェックを入れてビルドで OK だった。
できた生成ファイルたちを Linux サーバ上にもっていって、コマンド実行する。
$ ./run.x86_64
Set current directory to /home/r9/R9MLAPI_Server
Found path: /home/r9/R9MLAPI_Server/run.x86_64
Mono path[0] = '/home/r9/R9MLAPI_Server/run_Data/Managed'
Mono config path = '/home/r9/R9MLAPI_Server/run_Data/MonoBleedingEdge/etc'
Initialize engine version: 2019.4.14f1 (4037e52648cd)
[Subsystems] Discovering subsystems at path /home/r9/R9MLAPI_Server/run_Data/UnitySubsystems
Forcing GfxDevice: Null
GfxDevice: creating device client; threaded=0
NullGfxDevice:
Version: NULL 1.0 [1.0]
Renderer: Null Device
Vendor: Unity Technologies
Begin MonoManager ReloadAssembly
- Completed reload, in 0.079 seconds
UnloadTime: 0.820268 ms
Start Server
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
Unity 上でも実行して Start Client を押すと、うまく動いた。