PUN☀️五、游戏场景

发布于:2022-12-26 ⋅ 阅读:(334) ⋅ 点赞:(0)

在这里插入图片描述


🟥 目标

  • 完成游戏场景的搭建、
  • 完成PUN根据当前人数,加载对应人数的场景
  • 完成退出服务器房间(场景)到服务器大厅(主场景)的程序



🟧 场景搭建

制作退出Btn,用以离开当前游戏场景。【退出服务器房间(场景)到服务器大厅(主场景)】

1️⃣ 搭建游戏场景

a、新建场景,做出离开房间的UI button

b、场景内物体进行如下:

底边20x20,高3
在这里插入图片描述



2️⃣ 创建另外三个游戏场景

从第一个场景复制创建另外三个场景。不同点是活动区域大小不同:

Room for 2 Floor Scale: 36,1,36
Room for 3 Floor Scale: 50,1,50
Room for 4 Floor Scale: 60,1,60



3️⃣ 场景放入Build Settings

在这里插入图片描述


🟨 程序编程

目标:

  • 完成PUN根据当前人数,加载对应人数的场景
  • 完成退出服务器房间(场景)到服务器大厅(主场景)的程序

其实我们大厅主场景也有类似的根据人数加载对应场景的程序,LoadScene(),可以回顾下。

操作步骤:

  • 各个场景新建 GameManager 物体,赋值脚本如下
  • 并将其 LeaveRoom() ,绑定到离开房间Buoon上。
using UnityEngine.SceneManagement;
using Photon.Pun;
using Photon.Realtime;
 
public class GameManager : MonoBehaviourPunCallbacks
{
    #region Public Methods
 
    //离开服务器房间Btn
    public void Skode_LeaveRoom()
    {
        //不允许主客户端离开房间
        if (!PhotonNetwork.IsMasterClient)
            PhotonNetwork.LeaveRoom();
    }
 
    #endregion
 
 
    #region PUN Callbacks
 
    /// <summary>
    /// 本地玩家离开服务器房间时回调
    /// </summary>
    public override void OnLeftRoom()
    {
        // 加载大厅场景
        SceneManager.LoadScene(0);
    }
 
    /// <summary>
    /// 其他玩家连接房间时的回调(不是自己)
    /// </summary>
    public override void OnPlayerEnteredRoom(Player other)
    {
        print(other.NickName + "    加入房间");
 
        //根据当前玩家的人数,主客户端加载对应场景
        if (PhotonNetwork.IsMasterClient)
            LoadArena();
    }
 
    //当玩家离开房间或变得不活动时调用。
    public override void OnPlayerLeftRoom(Player other)
    {
        print(other.NickName + "    离开了房间");
 
        //根据当前玩家的人数,主客户端加载对应场景
        if (PhotonNetwork.IsMasterClient)
            LoadArena();
    }
 
    #endregion
 
 
    #region Private Methods
 
    void LoadArena()
    {
        //Photon分为主客户端、其他客户端。只有主客户端才可进行加载房间。
        //根据当前房间人数加载对应场景。该方法会使其他玩家会自动加入主客户端的房间
        PhotonNetwork.LoadLevel("Room for " + PhotonNetwork.CurrentRoom.PlayerCount);
    }
 
    #endregion
}





大家还有什么问题,欢迎在下方留言!


在这里插入图片描述
如果你有 技术的问题 项目开发

都可以加下方联系方式

和我聊一聊你的故事🧡

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到