Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Unity-未调用光子OnJoinedRoom_Android_Unity3d_Networking_Unity5_Photon - Fatal编程技术网

Android Unity-未调用光子OnJoinedRoom

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;

我正在使用光子为android制作一个FPS游戏。 代码如下:

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和所有使用双关语的回调/事件 我可以打电话。重写要使用的事件/方法。延伸 在这个类中,您可以实现单个方法作为重写

希望这对你有帮助

参考: