查看: 6960|回复: 7
收起左侧

[枫叶飘零] 王者荣耀类型实时对战游戏开发PUN基本入门之游戏场景构建

[复制链接]

[枫叶飘零] 王者荣耀类型实时对战游戏开发PUN基本入门之游戏场景构建[复制链接]

枫叶飘零 发表于 2017-10-31 21:00:00 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式 回复:  7 浏览:  6960
本节将介绍在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的列表中被索引为0 ,我们将在本节的“构建设置场景列表”部分中进行设置。
为什么要预制一下呢? 因为我们的游戏需求同一个游戏的不同几个场景,所以我们需要重复的使用这个游戏管理器。 在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将加载并显示播放器该列表上的第一个场景

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
+1
6960°C
7
  • 枫叶飘零
  • acepig
  • 猛子
  • anmie7723
  • 追逐浪尖
过: 他们
因分享而快乐,学习以自强!
枫叶飘零
 楼主|
发表于 2017-10-31 21:23:39 显示全部楼层
可以关注我微博和公众号 photonserver,该文章是一些列文章,这是Photon的官方案例翻译而成。
因分享而快乐,学习以自强!
acepig 发表于 2017-11-4 06:26:26 显示全部楼层
辛苦楼主了
因分享而快乐,学习以自强!
猛子 发表于 2017-11-7 15:29:13 显示全部楼层
收藏了,慢慢学习
因分享而快乐,学习以自强!
anmie7723 发表于 2017-12-6 08:23:44 显示全部楼层
路过看看 感谢分享
因分享而快乐,学习以自强!
追逐浪尖 发表于 2018-1-30 17:09:30 显示全部楼层
PUN?
因分享而快乐,学习以自强!
hakunamatata 发表于 2018-2-1 14:42:29 显示全部楼层
感谢老师的付出与分享!!
因分享而快乐,学习以自强!
白麟 发表于 2018-6-13 10:51:30 显示全部楼层
值得學習感謝分享
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 沪ICP备14023207号-9 )|网站地图

© 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

1
QQ