王者荣耀实时对战服务器Photon之PUN游戏场景构建

发表于2017-11-18
评论1 3k浏览

本节将介绍在Unity中构建玩家的游戏场景,根据玩家的人数来加载不同的场景,完善整个游戏demo的功能。主要是使用Unity编辑器完成场景的构建工作。

每个场景将专门针对特定数量的玩家,玩家数量越来越多,以适应所有玩家,并给他们足够的空间移动。

在本教程中,我们将根据玩家人数来实现逻辑,以加载正确的级别的场景,为此,将使用一个约定,达到对应级别将以以下格式命名:X for X”,X将代表玩家人数。

First Room Creation

1.创建一个新场景,保存并将其命名为Room for 1”。

2.创建一个立方体并将其命名为floor

3.根据以下图片进行设置,设置其位置,旋转和缩放。

4.以下是所有四面墙的位置和比例,来构建的场景楼层GameObject

主要不要忘记进行保存该场景。

Game Manager Prefab

在所有情况下,UI会设置一个退出房间功能。 为此,我们需要一个UI按钮,但是我们还需要一个脚本来调用Photon让本地玩家离开房间,所以让我们开始创建一个Game Manager的预制,主要实现让当前的游戏玩家可以顺利的退出当前的房间。

1.创建一个新的c#脚本GameManager

2.在场景中创建一个空的GameObject,将其命名为Game Manager

3.GameManager脚本放到GameObject Game Manager

4.通过将游戏管理器从场景层次结构拖动到资产浏览器,将游戏管理器转换为预制,它将在层次结构中变为蓝色。

5.编辑GameManager脚本

6.替换为以下内容

using System;

using System.Collections;

 

 

using UnityEngine;

using UnityEngine.SceneManagement; 

 

 

namespace Com.MyCompany.MyGame

    public class GameManager : MonoBehaviour {

 

 

        #region Photon Messages

 

 

        /// <summary>

        /// Called when the local player left the room. We need to load the launcher scene.

        /// </summary>

        public void OnLeftRoom()

        {

            SceneManager.LoadScene(0);

        }

 

 

        #endregion

 

 

        #region Public Methods

 

 

        public void LeaveRoom()

        {

            PhotonNetwork.LeaveRoom();

        }

 

 

        #endregion  

    }


7.保存GameManager脚本.

我们创建了一个公共方法LeaveRoom()。 它的作用是确保让本地玩家离开Photon房间,我们把它放到抽象公共方法中。 我们可能希望在稍后阶段实现更多功能,例如保存数据,或确定用户将离开步骤等。

根据我们的游戏要求,如果我们不在一个房间,我们需要显示Launcher场景,所以我们要调用方法OnLeftRoom()Photon回调,并加载大厅场景Launcher,它在Build settings Scene的列表中被索引为,我们将在本节的“构建设置场景列表”部分中进行设置。

为什么要预制一下呢? 因为我们的游戏需求同一个游戏的不同几个场景,所以我们需要重复的使用这个游戏管理器。 Unity中,重复使用GameObjects的最佳方法是将它们变成Prefabs

接下来,让我们创建一个UI Button,它将调用我们的GameManager LeaveRoom()方法。

Quit Room Button Prefab

在我们将有许多不同的场景需要这个功能的前提下,提前计划把Button改变成为预制,这样我们可以重用它。

1.确保你在场景room1中

2.使用Unity菜单“GameObject / UI / Panel”创建一个UI面板,将面板命名为Top Panel

3.删除图像和画布渲染器组件。

4.设置UI Panel控件的锚点位置,这是为了后期UI自适应。

5.RectTransform高度设置为50

6.右键单击Panel GameObject顶部面板并添加一个UI / Button,将其命名为Leave按钮

7.选择按钮的文本改为离开离开游戏

8.OnClick按钮的事件连接到层次结构中的Game Manager实例以调用LeaveRoom()。

1.“离开”按钮拖动到预制中,将其从场景层次结构拖动到资产浏览器,它将在层次结构中变为蓝色。

2.保存场景,并保存项目

Other Rooms Creation

现在我们已经完成一个房间,让我们复制3次,并且进行重新命名,2房间,3房间,4房间

查找位置,旋转和比例的更改,以加快重复的过程。

Room for 2 2房间设置Floor scale:36,1,36

Room for 3 3房间设置Floor Scale: 50,1,50

Room for 4 4房间设置Floor Scale: 60,1,60

Build Settings Scenes List

在编辑和发布时,我们需要在构建设置中添加所有这些场景,以便Unity在构建应用程序时包括它们。

通过菜单“文件/构建设置”打开构建设置

拖放所有场景,启动场景必须保持第一,默认情况下Unity将加载并显示播放器该列表上的第一个场景

现在我们完成了基本场景设置,我们终于可以开始把所有场景都设计完成。 剩下的工作让我们在下一节中做。

不管你有关于Photon产品的问题或者是Photon价格问题或者Photon教程方面的问题或者其他问题都可以联系我们给我我们留言,我们真诚的为您服务。关注我们公众号PhotonServer获取等多新鲜资讯。


关注我们公众号PhotonServer 获取最新教程资源。

王者荣耀实时对战服务器Photon之Pun应用系列文章 如果你喜欢请关注我公众号,并推荐给你你的小伙伴,谢谢。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引