PUN☀️五、游戏场景

简介: PUN☀️五、游戏场景

🟥 目标

  • 完成游戏场景的搭建、
  • 完成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
}


相关文章
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【实操】涨点神器你还不会,快点进来学习Label Smooth
【实操】涨点神器你还不会,快点进来学习Label Smooth
120 1
|
2月前
|
机器人
PUN ☀️九、玩家网络实例化与昵称显示
PUN ☀️九、玩家网络实例化与昵称显示
|
5月前
|
Java 程序员 图形学
程序员教你用代码制作飞翔的小鸟--Java小游戏,正好拿去和给女神一起玩
《飞扬的小鸟》Java实现摘要:使用IntelliJ IDEA和JDK 16开发,包含小鸟类`Bird`,处理小鸟的位置、速度和碰撞检测。代码示例展示小鸟图像的加载、绘制与旋转。同时有`Music`类用于循环播放背景音乐。游戏运行时检查小鸟是否撞到地面、柱子或星星,并实现翅膀煽动效果。简单易懂,可直接复制使用。
91 0
|
2月前
|
开发工具 图形学
PUN☀️一、基础配置、搭建大厅程序
PUN☀️一、基础配置、搭建大厅程序
|
2月前
|
网络协议 图形学
|
5月前
|
算法
连连看游戏系列教程开篇
连连看游戏系列教程开篇
76 0
|
Python
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏01之Pygame游戏模板
108 0
|
前端开发
前端知识案例学习3-毛玻璃效果
前端知识案例学习3-毛玻璃效果
63 0
前端知识案例学习3-毛玻璃效果
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百二十九题-inherit
#yyds干货盘点# 前端歌谣的刷题之路-第一百二十九题-inherit
82 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百二十九题-inherit