今記事は以下のの記事の接続編です。
まだメインの記事を読んでない方はそちらから読んでいただけると幸いです。
Strix Cloudのサーバー接続までを解説していきたいと思います。
##接続の基本
Strixのサーバー全体の仕組みについては以下のようになっています。
###マスターサーバーへの接続
public void ConnectMasterServer(
string host,
int port,
StrixNetworkConnectEventHandler connectEventHandler,
StrixNetworkConnectFailedEventHandler errorEventHandler
)
実際に接続する際には
public static void Connect() {
StrixNetwork strixNetwork = StrixNetwork.instance
LogManager.Instance.Filter = SoftGear.Strix.Net.Logging.Level.INFO;
strixNetwork.applicationId = "アプリケーションID";
strixNetwork.playerName = "自身のプレイヤー名";
strixNetwork.ConnectMasterServer("マスターホスト名", 9122, OnConnect, OnConnectFailed);
}
//接続成功時
void OnConnect(StrixNetworkConnectEventArgs args) {
Debug.Log("MasterServerに接続しました");
}
//接続失敗時
void OnConnectFailed(StrixNetworkConnectFailedEventArgs args) {
Debug.Log("MasterServerへの接続に失敗しました");
}
LogManager.Instance.Filter
にはログレベルを指定することができます。
6段階で設定できるのでお好みで設定してください。
アプリケーションIDは管理画面の赤の矢印の部分
マスターホスト名は青の矢印の部分を入力してください
ポートは基本的に9122で固定です
またStrix Cloudでは先程のコードにあるように成功時、失敗時とハンドラーを指定しています。
これは他のStrix関数でも定番のやり方なので気にしておくと良いでしょう。
コード例では直接IDを代入していますが、ScriptableObjectを使うとシーンに依存せず管理しやすいのでおすすめです。
###接続失敗時
void OnConnectFailed(StrixNetworkConnectFailedEventArgs args) {
string message = "";
if (args.cause != null) {
message += "MasterServerの接続に失敗しました\n";
message += $"host {args.session.host}, port {args.session.port}, cause {args.cause.Message}";
}
Debug.Log(message);
}
args.session
は接続試行時のセッション情報です。接続に失敗したホスト名やポートなどをここで取得します。
args.cause.Message
は接続の失敗原因です。大体これで原因がわかります。
ルームサーバーへの接続(マッチメイキング)は次の記事で解説します!
【Strix】 PhotonからStrix Cloudに移行してみた ~マッチメイキング編~
##参考リンク
初回セットアップについて
サンプル例
StrixNetworkConnectFailedEventArgs