Android Unity-未调用光子OnJoinedRoom
我正在使用光子为android制作一个FPS游戏。 代码如下:Android Unity-未调用光子OnJoinedRoom,android,unity3d,networking,unity5,photon,Android,Unity3d,Networking,Unity5,Photon,我正在使用光子为android制作一个FPS游戏。 代码如下: using UnityEngine; using UnityEngine.UI; public class SceneLoaderButton : Photon.PunBehaviour { public string roomName, mapNameGL, password; public GameObject loadingPan; public MenuRooms menuManager;
using UnityEngine;
using UnityEngine.UI;
public class SceneLoaderButton : Photon.PunBehaviour {
public string roomName, mapNameGL, password;
public GameObject loadingPan;
public MenuRooms menuManager;
// Use this for initialization
void Start () {
Button btn = GetComponent<Button> ();
btn.onClick.AddListener (ConnectCustomRoom);
}
// Update is called once per frame
void Update () {
}
void ConnectCustomRoom(){
string room = roomName;
RoomInfo[] ri;
ri = PhotonNetwork.GetRoomList ();
bool correct = false;
string passwd, mapName = "";
passwd = password;
foreach (RoomInfo info in ri) {
if (info.name == room) {
if (info.customProperties ["Password"].ToString() == passwd) {
print(info.playerCount + "/" + info.maxPlayers);
if (info.playerCount < info.maxPlayers)
{
correct = true;
}
else
{
menuManager.error("No room for you");
}
mapName = info.customProperties ["MapName"].ToString ();
}
else
{
menuManager.error("Incorrect password");
}
}
}
mapNameGL = mapName;
print(mapNameGL);
if (correct) {
print("Correct");
loadingPan.active = !loadingPan.active;
PhotonNetwork.playerName = "Player" + UnityEngine.Random.Range (1000,9999).ToString();
PhotonNetwork.JoinRoom(room);
}
}
void OnJoinedRoom()
{
print("Joined room: " + roomName);
//We joined room, load respective map
Application.LoadLevel(mapNameGL);
}
}
使用UnityEngine;
使用UnityEngine.UI;
公共类SceneLoaderButton:Photon.punBehavior{
公共字符串roomName、mapNameGL、密码;
公共游戏对象加载盘;
公共动物园管理员;
//用于初始化
无效开始(){
按钮btn=GetComponent();
btn.onClick.AddListener(连接CustomRoom);
}
//每帧调用一次更新
无效更新(){
}
void-customroom(){
字符串room=roomName;
RoomInfo[]ri;
ri=PhotonNetwork.GetRoomList();
布尔正确=错误;
字符串passwd,mapName=“”;
passwd=密码;
foreach(ri中的RoomInfo){
如果(info.name==房间){
if(info.customProperties[“Password”].ToString()==passwd){
打印(info.playerCount+“/”+info.maxPlayers);
如果(info.playerCount
这是来自按钮的代码。它被实例化,应该加入房间,然后加载场景。在其他脚本中,“onjoinedroom”回调可以工作,即使我继承了Photon.monobhaveiour而不是punbhaveiour。怎么了?根据双关语文档,它是一个虚拟成员,因此您可以重写该方法 尝试将方法更改为:
override void OnJoinedRoom ()
{
//your codes
}
//or
public override void OnJoinedRoom ()
{
//your codes
}
此类提供.photonView和所有使用双关语的回调/事件
我可以打电话。重写要使用的事件/方法。延伸
在这个类中,您可以实现单个方法作为重写
希望这对你有帮助
参考:
基于双关语文档,它是一个虚拟成员,因此您可以重写该方法 尝试将方法更改为:
override void OnJoinedRoom ()
{
//your codes
}
//or
public override void OnJoinedRoom ()
{
//your codes
}
此类提供.photonView和所有使用双关语的回调/事件
我可以打电话。重写要使用的事件/方法。延伸
在这个类中,您可以实现单个方法作为重写
希望这对你有帮助
参考: