UnityNetworkでオンライン対応7-ログインシーンとゲームシーンを分ける-

今回は今まで同じシーンにログインとゲーム本編を入れていましたが、ログインシーンとゲームシーンを二つに分け、ログアウトしたらログインシーンに戻るようにします。

前回は敵キャラクターを登場させました。

UnityNetworkでシーン上にあらかじめ敵キャラクターを置いておく方法と途中からインスタンス化して登場させる方法を作成していきます。

今回の機能はすぐ終わります。(^^)/

スポンサーリンク

ログインシーンの作成

まずはログインシーンの作成をします。

Assetsフォルダ内で右クリック→Create→Sceneを選択し、名前をLoginに変更します。

ゲーム本編のシーンの変更

今まで使っていたゲーム本編シーンを開き、NetworkManagerゲームオブジェクトを選択した状態で右クリック→Copyを選択します(Ctrl+CでもOK)。

先ほど作成したLoginシーンを開き、右クリック→Paste(Ctrl+VでもOK)します。

コピーが完了したら、ゲーム本編のシーンにあるNetworkManagerゲームオブジェクトは削除します。

NetworkManagerにシーンを登録

次にUnityメニューのFileからBuild Settingsを選択し、そこにログインシーンとゲーム本編のシーンをドラッグ&ドロップし追加します。

BuildSettingsにログインシーンとゲームシーンを追加

最初にロードしたいシーンを上にするので、Loginシーンを上に持っていきます。

Loginシーンを開き、NetworkManagerゲームオブジェクトのNetworkManagerコンポーネントのOffline Sceneにログインシーン、Online Sceneにゲームシーンを設定します。

NetworkManagerにログインシーンとゲームシーンを登録する

↑のようにドラッグ&ドロップし、設定しました。

ビルドして確認する

これで完成です。

ビルドした後、一つのアプリケーションで部屋を作成し、もう一つのアプリケーションでその部屋にログインします。

ログインシーンからゲームシーンへと移動するはずです。

また、最初に部屋を作ったアプリはそのままで、後から部屋に入室したアプリの方でStopボタンを押してログアウトしてみます。

↑のようにログアウトするとログインシーンへと戻るようになります。

終わりに

いやぁ非常に簡単ですね!

記事もずいぶん短いです。

いや・・・、他の記事が長すぎるんじゃ (;一_一)

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます

コメント

  1. きなぎ悠 より:

    お世話になります。
    LAN Hostでネットワークの確認を行うとできるのですが、Enable Match Makerで確認しようとすると出来ません。
    これはポート開放が関係しているのでしょうか?それとも何か別の理由があるのでしょうか?
    Create Internet Matchをクリックしても何も変化はありません。

    • ネットワーク関連に関しては詳しくないのでわかりませんが・・・、Network Portはデフォルトの7777であれば既存のポートと被るという事はないと思いますが。
      学内ネットワークや社内ネットワークなどを使っているとそれが関係する事があるかもしれません。

      ネットワーク処理自体も忘れているので、確認してみようとしましたが、最近Unity2017にアップデートした事でネットワーク関連のプロジェクトでエラーが発生しそれも出来ません・・・・。

      UnityマニュアルのNetworkManagerのページで

      https://docs.unity3d.com/jp/current/Manual/UNetManager.html

      NetworkManagerを継承してクラスを作成して関連するメソッドを記述して呼び出しがされているかで確認できることもあるかもしれません。

      しかし、今のわたくしでは何の役にも立てません・・・・(+_+)

      プロジェクトのエラーを解消したので試してみました。

      NetworkManagerHUDで試す時にEnable Match Makerを押すと次の画面になりますが、Change MM ServerでLocalにするとCreate Internet Matchは出来ません(たぶんローカルなので)。

      ここをInternetにすると接続出来ます。

      ローカル環境でクライアントとして作成したマッチに参加したい時はFind Internet Matchで先ほど作成した部屋を見つけることが出来ます。

      Internetでマッチングが出来ないとなるとちょっとわかりませんが・・・・。

      追記の追記。

      UnityのServicesウインドウのMultiplayerの最大人数の設定がされていない可能性もあります。