本節(jié)介紹了玩家將要玩的各種場景的創(chuàng)建空骚。
每個(gè)場景將專門為特定數(shù)量的玩家,越來越大未檩,適合所有玩家,給他們足夠的空間移動(dòng)粟焊。
在本教程的下一步冤狡,我們將實(shí)現(xiàn)邏輯來根據(jù)玩家數(shù)量加載正確的級(jí)別孙蒙,并且為此將使用一個(gè)約定,每個(gè)級(jí)別將命名為以下格式:“Room for X”悲雳,其中X將代表玩家的數(shù)量挎峦。
主要內(nèi)容
- 第一個(gè)房間創(chuàng)建
- Game Manager Prefab
- 退出房間按鈕Prefab
- 其他房間創(chuàng)建
- Build Settings 場景列表
第一個(gè)房間創(chuàng)建
- 首先創(chuàng)建一個(gè)新的場景,保存合瓢,命名為“Room for 1”
- 創(chuàng)建一個(gè)Cube然后命名為floor
- 把它放到0,0,0.這很重要坦胶,因?yàn)槲覀兊倪壿嬒到y(tǒng)將會(huì)在中心位置上方(0,x,0)生成玩家
- 縮放floor到20,0,20
這樣的場景肯定能夠玩了,但是需要一些墻壁將保持玩家在地板區(qū)域內(nèi)晴楔。 只需創(chuàng)建更多的立方體和位置顿苇,旋轉(zhuǎn)和縮放作為墻壁。下面是所有四個(gè)墻壁的位置和縮放滥崩,匹配floor對(duì)象岖圈。
不要忘記保存Room for 1場景。
Game Manager Prefab
在所有情況下钙皮,用戶界面的最低要求是能夠退出房間蜂科。為此,我們需要一個(gè)UI按鈕短条,但是我們還需要一個(gè)腳本來調(diào)用Photon來讓玩家離開房間导匣,所以讓我們開始創(chuàng)建我們稱之為Game Manager的prefab,第一個(gè)任務(wù)就是讓玩家退出當(dāng)前所在的房間茸时。
創(chuàng)建一個(gè)新的C#腳本GameManager
創(chuàng)建一個(gè)空的游戲?qū)ο蠊倍ǎ麨镚ame Manager
把GameManager腳本拖拽到Game Manager對(duì)象上
把Game Manager對(duì)象從場景Hierarchy拖拽到Assets里面轉(zhuǎn)成prefab,它會(huì)變成藍(lán)色
編輯GameManager腳本
-
替換為如下腳本
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 } }
保存GameManager腳本
所以可都,我們創(chuàng)建了一個(gè)公共方法LeaveRoom()缓待。它的作用是明確地讓內(nèi)部玩家離開Photon Room,我們將它放在Public Methods區(qū)塊渠牲。我們可能希望在稍后階段實(shí)現(xiàn)更多功能旋炒,例如保存數(shù)據(jù),或插入用戶將離開游戲的確認(rèn)步驟等签杈。
根據(jù)我們的游戲要求瘫镇,如果我們不在房間里,我們需要顯示Launcher場景答姥,所以我們要監(jiān)聽OnLeftRoom()回調(diào)并加載Lobby場景Launcher铣除,它在Build Settings場景列表中被索引為0,我們將在本部分的Build Settings場景列表部分中設(shè)置鹦付。
但是為什么要做一個(gè)prefab呢尚粘? 因?yàn)槲覀兊挠螒蛐枨笠馕吨挥螒虻膸讉€(gè)場景,需要重用這個(gè)Game Manager對(duì)象敲长。在Unity中背苦,重用GameObjects的最好方法是將它們轉(zhuǎn)換為Prefabs互捌。
下面,我們來創(chuàng)建一個(gè)UI按鈕來調(diào)用GameManager LeaveRoom()方法行剂。
退出房間按鈕Prefab
同樣,就像Game Manager一樣钳降,在我們將有許多不同的場景需要這個(gè)功能厚宰,提前計(jì)劃是有意義的,使Button成為Prefab遂填,這樣我們需要在以后使用的話铲觉,我們可以重用它并在只一個(gè)地方修改它。
- 確保你在Room for 1場景中
- 使用unity菜單'GameObject/UI/Panel'吓坚,創(chuàng)建一個(gè)UI Panel撵幽,命名為Top Panel
- 去掉Panel的Image和Canvas Renderer組件
- 設(shè)置垂直錨點(diǎn)為top,水平錨點(diǎn)為stretch礁击,同時(shí)按住Shift和Alt鍵
- 設(shè)置RectTransform高度為50
- 右擊Top Panel對(duì)象盐杂,添加UI按鈕,命名為Leave button
- 選擇Leave button的文字子節(jié)點(diǎn)哆窿,設(shè)置文本為Leave Game
- 把按鈕的OnClick時(shí)間連接到Game Manager實(shí)例的Leave Room函數(shù)
- 把Leave button也轉(zhuǎn)變成prefab
- 保存場景链烈,保存工程
其他Room創(chuàng)建
我們已經(jīng)創(chuàng)建好了一個(gè)房間,我們可以復(fù)制3份挚躯,然后給它們合適的名字强衡。
- Room for 2
- Room for 3
- Room for 4
使用下面的position,rotation和scale參數(shù)設(shè)置場景。
Room for 2
Floor縮放: 36,1,36
Room for 3
Floor縮放:50,1,50
Room for 4
Floor縮放:60,1,60
Build Settings場景列表
當(dāng)發(fā)布時(shí)码荔,我們需要在構(gòu)建設(shè)置中添加所有這些場景漩勤,以便Unity在構(gòu)建應(yīng)用程序時(shí)包括它們。
- 通過"File/Build Settings"打開Build Settings
- 把所有的場景拖拽進(jìn)來缩搅,Launcher場景必須是第一個(gè)越败,因?yàn)閁nity默認(rèn)會(huì)加載第一個(gè)場景
現(xiàn)在我們做好了基本的場景設(shè)置,我們在下一部分繼續(xù)誉己。
原文
http://doc.photonengine.com/en-us/pun/current/tutorials/pun-basics-tutorial/game-scenes