유니티에서 온라인 멀티플레이어 게임을 만들고 싶은 4홀에서 방에 들어가고 싶어요.

저번 보도 현재 서버에 연결할 수 있기 때문에 다음 단계로 들어가는 방을 만들어야 합니다.

이번 목표.


마지막 상태 마이그레이션 다이어그램에서 이미지에 빨간색 제로 둘러싸인 근처를 만듭니다.

이미지 맵

현관


http://www.monobitengine.com/doc/mun/contents/Reference/Glossary.htm#%E3%83%AD%E3%83%93%E3%83%BC
특정한 조건으로 룸메이트 같은 거 나눠도 돼요?
소프라의 정규 성냥과 잘 어울리는 느낌으로 대충 분리할 때 사용하는 것이 좋다.
이번에는 특별히 여러 개의 홀을 만들 이유가 없어서 기본 홀을 사용하고 싶습니다.

현관 입실 처리


기본 로비에 들어가는 이벤트를 추가합니다.
http://www.monobitengine.com/doc/mun/contents/FeatureClient/AutoJoinLobby.htm
MonobitEngine.MonobitNetwork.autoJoinLobby = true;
이 코드는 Monobit Network입니다.ConnectServer () 를 호출하기 전에 추가하면 기본 로비로 이동합니다.
그러니까 추가해 봐.
※ 변경점이 있는 곳을 제외한 곳에서 사랑을 베기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using MonobitEngine;

public class SceneTitle : MonobitEngine.MonoBehaviour
{
    // スタートボタンが押された際に行いたい処理
    private void OnClickStart()
    {
        // 自動でデフォルトのロビーへ入室する
        MonobitNetwork.autoJoinLobby = true;

        // スタートボタンが押されたときにサーバーへ接続させたい
        // 引数にはゲームのバージョンをいれてあげるといいです
        MonobitEngine.MonobitNetwork.ConnectServer("DungeonAction_v_1_0");
    }
}
이렇게 하면 로비에 들어갈 수 있다.
로비 입실 성공 후 즉시 처리할 수 있도록 원본 코드를 더욱 변경할 것입니다.
http://www.monobitengine.com/doc/mun/contents/FeatureClient/CallbackFunction.htm
public void OnJoinedLobby()
이 함수만 추가하면 로비에 들어간 후의 처리를 실현할 수 있다.
MonobitNetwork.autoJoinLobbytrue 로 설정하면 OnConnectedToServer() 라고 부르지 않고 OnJoinedLobby() 대신 OnConnectedToServer() 에 설치된 내용을 OnJoinedLobby() 로 옮깁니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using MonobitEngine;

public class SceneTitle : MonobitEngine.MonoBehaviour
{
    // スタートボタンが押された際に行いたい処理
    private void OnClickStart()
    {
        // 自動でデフォルトのロビーへ入室する
        MonobitNetwork.autoJoinLobby = true;

        // スタートボタンが押されたときにサーバーへ接続させたい
        // 引数にはゲームのバージョンをいれてあげるといいです
        MonobitEngine.MonobitNetwork.ConnectServer("DungeonAction_v_1_0");
    }

     /// <summary>ロビーへ入室した際に呼ばれるコールバック</summary>
     private void OnJoinedLobby()
     {
        // ロビー入室に成功したのでロビー画面へ切り替える
        SceneManager.LoadScene("Lobby");
     }
}
로비에 들어가면 로비 화면으로 전환할 수 있다.

로비 화면


버튼을 누르면 장면을 전환하는 기능과 제목 화면으로 돌아갈 때 서버를 차단하는 기능을 실현한다.

로비에 들어갔는지 확인하다


http://www.monobitengine.com/doc/doxygen/client/html/class_monobit_engine_base_1_1_monobit_network.html#ab4b92a64b1b2657f1eda9332186c721c
bool MonobitEngineBase.MonobitNetwork.inLobby
이렇게 하면 로비에 들어간 상태를 확인할 수 있다.
로비에 들어가지 않은 상태에서 가고 싶지 않은 처리를 제한하는 데 쓰일 수 있다.

서버에서 연결 해제

MonobitEngine.MonobitNetwork.DisconnectServer();
그것을 사용하여 서버에서 연결을 끊습니다.
void OnDisconnectedFromServer()
DisconnectServer() 이후 함수라고 불린다.
서버가 끊긴 후 진행하고 싶은 처리는 여기에 적혀 있습니다.
상기 기능에 따라 로비 화면 제어를 제작한다.
※ uGUI 설치는 생략되었습니다.
/// <summary>ロビー入室後の画面</summary>
public class SceneLobby : MonobitEngine.MonoBehaviour
{
    // Start is called before the first frame update
    private void Start()
    {
        // ロビーへの入室が成されているかを確認する
        if(!MonobitNetwork.inLobby)
        {
            Debug.Log("Not in lobby");
            return;
        }

        /*-------------------------------ロビー画面変更後のuGUI配置などの処理-----------------------------*/
    }

    /// <summary>MUNサーバーとの接続を切った際に呼ばれるコールバック</summary>
    private void OnDisconnectedFromServer()
    {
        // サーバーから切断された後にタイトル画面に戻るようにする
        SceneManager.LoadScene("Title");
    }

    /// <summary>ルーム作成画面へ移動するボタンを押した際に呼ばれる</summary>
    private void OnClickCreateRoom()
    {
        SceneManager.LoadScene("CreateRoom");
    }

    /// <summary>ルーム入室画面へ移動するボタンを押した際に呼ばれる</summary>
    private void OnClickJoinRoom()
    {
        SceneManager.LoadScene("JoinRoom");
    }

    /// <summary>タイトル画面へ戻るボタンを押した際に呼ばれる</summary>
    private void OnClickBack()
    {
        // サーバーから切断する
        MonobitNetwork.DisconnectServer();
    }
}
이로써 로비 화면에 필요한 기능이 설치되었다.
다음에는 방을 만드는 그림을 만들고 싶어요.

자료


http://www.monobitengine.com/doc/mun/contents/Reference/Glossary.htm#%E3%83%AD%E3%83%93%E3%83%BC
http://www.monobitengine.com/doc/mun/contents/FeatureClient/AutoJoinLobby.htm
http://www.monobitengine.com/doc/mun/contents/FeatureClient/CallbackFunction.htm
http://www.monobitengine.com/doc/doxygen/client/html/class_monobit_engine_base_1_1_monobit_network.html#ab4b92a64b1b2657f1eda9332186c721c

좋은 웹페이지 즐겨찾기