前提・実現したいこと
unityでオンラインアクションゲームを作るため、まずロビーを作ろうとしたのですが、コンパイルエラー続出。ネットの情報を調べたが、どうもPUN2が2018年にアップデートされてコードが大きく変更されたのだが、その詳しい情報がないためここにきた。
ゲームを始める前のロビーを作りたい。
発生している問題・エラーメッセージ
Assets\Tedukuri\Script\PhotonManegerScript.cs(6,30): error CS0246: The type or namespace name 'MonoBehaviourPunCallbacks' could not be found (are you missing a using directive or an assembly reference?) Assets\Tedukuri\Script\PhotonManegerScript.cs(41,48): error CS0246: The type or namespace name 'RoomInfo' could not be found (are you missing a using directive or an assembly reference?) Assets\Tedukuri\Script\PhotonManegerScript.cs(61,42): error CS0246: The type or namespace name 'DisconnectCause' could not be found (are you missing a using directive or an assembly reference?) Assets\Tedukuri\Script\PhotonManegerScript.cs(28,26): error CS0115: 'PhotonManager.OnConnectedToMaster()': no suitable method found to override Assets\Tedukuri\Script\PhotonManegerScript.cs(35,26): error CS0115: 'PhotonManager.OnJoinedLobby()': no suitable method found to override Assets\Tedukuri\Script\PhotonManegerScript.cs(78,26): error CS0115: 'PhotonManager.OnCreatedRoom()': no suitable method found to override Assets\Tedukuri\Script\PhotonManegerScript.cs(84,26): error CS0115: 'PhotonManager.OnCreateRoomFailed(short, string)': no suitable method found to override Assets\Tedukuri\Script\PhotonManegerScript.cs(90,26): error CS0115: 'PhotonManager.OnJoinedRoom()': no suitable method found to override
該当のソースコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// コールバック機能を使うためMonoBehaviourPunCallbacksを継承
public class PhotonManager : MonoBehaviourPunCallbacks
{
// Photonサーバ接続処理
public void ConnectPhoton(bool boolOffline)
{
if (boolOffline)
{
// オフラインモードを設定
PhotonNetwork.OfflineMode = true; // OnConnectedToMaster()が呼ばれる
return;
}
// Photonサーバに接続する
PhotonNetwork.ConnectUsingSettings();
}
// Photonサーバ切断処理 public void DisConnectPhoton() { PhotonNetwork.Disconnect(); } // コールバック:Photonサーバ接続完了 public override void OnConnectedToMaster() { base.OnConnectedToMaster(); // ロビーに接続 PhotonNetwork.JoinLobby(); } // コールバック:ロビー接続完了 public override void OnJoinedLobby() { base.OnJoinedLobby(); } // コールバック:ルーム一覧更新処理 // (ロビーに入室した時、他のプレイヤーが更新した時のみ) public override void OnRoomListUpdate(List<RoomInfo> roomList) { base.OnRoomListUpdate(roomList); // ルーム一覧更新 foreach (var info in roomList) { if (!info.RemovedFromList) { // 更新データが削除でない場合 roomDispList.Add(info); } else { // 更新データが削除の場合 roomDispList.Remove(info); } } } // コールバック:Photonサーバ接続失敗 public override void OnDisconnected(DisconnectCause cause) { base.OnDisconnected(cause); } // ルーム作成・入室処理 public void CreateRoom(string roomName) { PhotonNetwork.CreateRoom(roomName); } // ルーム入室処理 public void ConnectToRoom(string roomName) { PhotonNetwork.JoinRoom(roomName); } // コールバック:ルーム作成完了 public override void OnCreatedRoom() { base.OnCreatedRoom(); } // コールバック:ルーム作成失敗 public override void OnCreateRoomFailed(short returnCode, string message) { base.OnCreateRoomFailed(returnCode, message); } // コールバック:ルームに入室した時 public override void OnJoinedRoom() { base.OnJoinedRoom(); }
}
試したこと
ネットで調べたが、大半がPUN2の更新前の情報ばかりだった。2018年より古い記事はエラーが起きるということだけ分かった
補足情報(FW/ツールのバージョンなど)
unity自体初心者です。専門用語とか答えられても分かりません。
あなたの回答
tips
プレビュー