Unity使用Photon 正式连接服务器 入门系列(四)

按照官方文档的说明,先新建一个网络启动脚本

我就叫它NetworkLauncher

using UnityEngine;
using Photon.Pun;//要引用Photon的库

public class NetworkLauncher : MonoBehaviourPunCallbacks//继承也要改成Pun的类
{
    void Start()
    {
        //使用默认设置好的Settings;
        PhotonNetwork.ConnectUsingSettings();
        Debug.Log("准备连接服务器");
    }

	//当程序连接到服务器后的回调函数
    public override void OnConnectedToMaster()
    {
        //base.OnConnectedToMaster();
        Debug.Log("已连接服务器");
    }
}

这个脚本挂在一个空对象下面,当程序运行的时候,它就会开始连接服务器,有时候会出现连接不上的情况,应该是服务器的原因吧,等会再试就好了(如果是别的原因,希望评论告诉我一下)

当服务器连接成功以后,就可以加入大厅和加入房间,可以让客户端加入大厅以后再选择房间,这个自己代码逻辑设置吧,没什么好说的

using Photon.Realtime;//创建房间要用这个库

	//让玩家输入自己的名字、房间号码
    public InputField roomName;
    public InputField playerName;
    
    //当程序连接到服务器后的回调函数
    public override void OnConnectedToMaster()
    {
        //base.OnConnectedToMaster();
        Debug.Log("已连接服务器");
        
        //加入大厅
        PhotonNetwork.JoinLobby();
    }
    //当程序连接到大厅后的回调函数
 	public override void OnJoinedLobby()
    {
        roomName.gameObject.SetActive(true);
        playerName.gameObject.SetActive(true);
    }
	
	public void ClearOrJoinRoom()
	{
		if(roomName.text!=""&&playerName.text!="")
		{
			//将玩家名字记录
    	    PhotonNetwork.NickName = playerName.text;
    	    
			//创建房间或者加入房间,PUN是有单独的创建和加入方法的
			//这个会用了单独的就没有问题了
			//玩家数量设置,免费版的Pun最多支持20个人同时在线
       		 RoomOptions options = new RoomOptions { MaxPlayers = 4 };
       		 
       		 //创建或者加入房间
      		 PhotonNetwork.JoinOrCreateRoom(roomName.text, options, default);
		}
	}
	
	//当程序连接到房间后的回调函数
	public override void OnJoinedRoom()
    {
        //base.OnJoinedRoom();
        Debug.Log("开始加载游戏场景");
        PhotonNetwork.LoadLevel("Game");
    }

现在就可以成功连接服务器、大厅、房间了

你可能感兴趣的:(PhotonPUN)