実現したいこと
Monobit Unity Networkingを使って二人での対戦ゲームが作りたい
相手のステージに敵を配置していきたいので自分が所有権持っているステージと相手が所有権持っているステージをはじめに生成したい
もしくは最初からステージを置いておいて片方をホストじゃない方に所有権譲渡したいがやり方がわからなかった
現状
上記を参考にInstantiate書いてみたが生成されない
PrefabにMonobitViewはアタッチして、ルームに入っていないといけないと書いていたのでDontDestroyOnLoadを追加してみたが生成されなかった
該当コード
// ルーム名 private string roomName = "Null"; void Awake() { DontDestroyOnLoad(gameObject); } // Start is called before the first frame update void Start() { MonobitNetwork.autoJoinLobby = true; // ホストのシーンと同じシーンを部屋に入室した人もロードする。 MonobitNetwork.autoSyncScene = true; MonobitNetwork.ConnectServer("v_1_0"); } // MUNサーバーとの接続に成功した際に呼ばれる接続コールバック public void OnConnectedToMonobit() { Debug.Log("接続しました"); } // サーバから切断したときに呼ばれる接続コールバック public void OnDisconnectedFromServer() { Debug.Log("切断しました"); } // MUNサーバーとの接続に失敗した際に呼ばれる接続コールバック public void OnConnectToServerFailed(MonobitEngine.DisconnectCause cause) { Debug.Log("接続に失敗しました:" + cause.ToString()); } // MUNサーバーとの接続後に何らかの原因で切断されたときに呼ばれる接続コールバック public void OnConnectionFail(MonobitEngine.DisconnectCause cause) { Debug.Log("サーバーとの接続後に何らかの原因で切断されました:" + cause.ToString()); } // サーバーへの接続数が上限だった際に呼ばれる接続コールバック public void OnMonobitMaxConnectionReached() { Debug.Log("サーバーに接続しているクライアント数が上限に達しています"); } // ルーム入室時の処理 public void OnJoinedRoom() { Debug.Log("OnJoinedRoom"); } // ルームを生成したときに、デバッグログを出力します。 public void OnCreatedRoom() { Debug.Log("OnCreatedRoom"); } //プレイヤーが入ってきたら public void OnOtherPlayerConnected() { Debug.Log("OnOtherJoinedRoom"); SceneManager.LoadScene("Online"); } public void Matching() { RoomSettings settings = new MonobitEngine.RoomSettings(); settings.maxPlayers = 2; settings.isVisible = true; settings.isOpen = true; LobbyInfo lobby = new MonobitEngine.LobbyInfo(); lobby.Kind = LobbyKind.Default; lobby.Name = "LobbyName"; MonobitNetwork.JoinOrCreateRoom(roomName, settings, lobby); } }
public class GameControllerOnline : MonobitEngine.MonoBehaviour { public GameObject wincanvas; public GameObject win; public GameObject lose; private GameObject hoststage; private GameObject gueststage; // Start is called before the first frame update void Start() { wincanvas.SetActive(false); win.SetActive(false); lose.SetActive(false); if (MonobitNetwork.isHost) { hoststage=MonobitNetwork.Instantiate("CreateModeOnline", Vector3.zero, Quaternion.identity, 0); } else { gueststage = MonobitNetwork.Instantiate("CreateModeOnline", new Vector3(1000, 0, 0), Quaternion.identity, 0); } } // Update is called once per frame void Update() { } public void HostWin() { win.SetActive(true); wincanvas.SetActive(true); } public void GuestWin() { lose.SetActive(true); wincanvas.SetActive(true); } }
http://support.monobitengine.com/index.php で聞いた方が良いと思います。
あなたの回答
tips
プレビュー