首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PUN☀️五、游戏场景

PUN☀️五、游戏场景

作者头像
星河造梦坊官方
发布2024-08-15 21:08:26
发布2024-08-15 21:08:26
2540
举报

🟥 目标

  • 完成游戏场景的搭建、
  • 完成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上。
代码语言:javascript
复制
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
}

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🟥 目标
  • 🟧 场景搭建
    • 1️⃣ 搭建游戏场景
    • 2️⃣ 创建另外三个游戏场景
    • 3️⃣ 场景放入Build Settings
  • 🟨 程序编程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档