Photon Unity Networking基礎(chǔ)教程 3 游戲場景

本節(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)建

  1. 首先創(chuàng)建一個(gè)新的場景,保存合瓢,命名為“Room for 1”
  2. 創(chuàng)建一個(gè)Cube然后命名為floor
  3. 把它放到0,0,0.這很重要坦胶,因?yàn)槲覀兊倪壿嬒到y(tǒng)將會(huì)在中心位置上方(0,x,0)生成玩家
  4. 縮放floor到20,0,20

這樣的場景肯定能夠玩了,但是需要一些墻壁將保持玩家在地板區(qū)域內(nèi)晴楔。 只需創(chuàng)建更多的立方體和位置顿苇,旋轉(zhuǎn)和縮放作為墻壁。下面是所有四個(gè)墻壁的位置和縮放滥崩,匹配floor對(duì)象岖圈。

walls

不要忘記保存Room for 1場景。

Game Manager Prefab

在所有情況下钙皮,用戶界面的最低要求是能夠退出房間蜂科。為此,我們需要一個(gè)UI按鈕短条,但是我們還需要一個(gè)腳本來調(diào)用Photon來讓玩家離開房間导匣,所以讓我們開始創(chuàng)建我們稱之為Game Manager的prefab,第一個(gè)任務(wù)就是讓玩家退出當(dāng)前所在的房間茸时。

  1. 創(chuàng)建一個(gè)新的C#腳本GameManager

  2. 創(chuàng)建一個(gè)空的游戲?qū)ο蠊倍ǎ麨镚ame Manager

  3. 把GameManager腳本拖拽到Game Manager對(duì)象上

  4. 把Game Manager對(duì)象從場景Hierarchy拖拽到Assets里面轉(zhuǎn)成prefab,它會(huì)變成藍(lán)色

  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腳本

所以可都,我們創(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è)地方修改它。

  1. 確保你在Room for 1場景中
  2. 使用unity菜單'GameObject/UI/Panel'吓坚,創(chuàng)建一個(gè)UI Panel撵幽,命名為Top Panel
  3. 去掉Panel的Image和Canvas Renderer組件
  4. 設(shè)置垂直錨點(diǎn)為top,水平錨點(diǎn)為stretch礁击,同時(shí)按住Shift和Alt鍵
  5. 設(shè)置RectTransform高度為50
  6. 右擊Top Panel對(duì)象盐杂,添加UI按鈕,命名為Leave button
  7. 選擇Leave button的文字子節(jié)點(diǎn)哆窿,設(shè)置文本為Leave Game
  8. 把按鈕的OnClick時(shí)間連接到Game Manager實(shí)例的Leave Room函數(shù)
ButtonOnclickLeaveRoom.png
  1. 把Leave button也轉(zhuǎn)變成prefab
  2. 保存場景链烈,保存工程

其他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

Roomfor2.jpg

Room for 3

Floor縮放:50,1,50

Roomfor3.jpg

Room for 4

Floor縮放:60,1,60

Roomfor4.jpg

Build Settings場景列表

當(dāng)發(fā)布時(shí)码荔,我們需要在構(gòu)建設(shè)置中添加所有這些場景漩勤,以便Unity在構(gòu)建應(yīng)用程序時(shí)包括它們。

  1. 通過"File/Build Settings"打開Build Settings
  2. 把所有的場景拖拽進(jìn)來缩搅,Launcher場景必須是第一個(gè)越败,因?yàn)閁nity默認(rèn)會(huì)加載第一個(gè)場景
BuildSettingsScenes.png

現(xiàn)在我們做好了基本的場景設(shè)置,我們在下一部分繼續(xù)誉己。

原文

http://doc.photonengine.com/en-us/pun/current/tutorials/pun-basics-tutorial/game-scenes

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眉尸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子巨双,更是在濱河造成了極大的恐慌噪猾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筑累,死亡現(xiàn)場離奇詭異袱蜡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)慢宗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門坪蚁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奔穿,“玉大人,你說我怎么就攤上這事敏晤〖铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵嘴脾,是天一觀的道長男摧。 經(jīng)常有香客問我,道長译打,這世上最難降的妖魔是什么耗拓? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮奏司,結(jié)果婚禮上乔询,老公的妹妹穿的比我還像新娘。我一直安慰自己韵洋,他們只是感情好竿刁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著麻献,像睡著了一般们妥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勉吻,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天监婶,我揣著相機(jī)與錄音,去河邊找鬼齿桃。 笑死惑惶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的短纵。 我是一名探鬼主播带污,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼香到!你這毒婦竟也來了鱼冀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤悠就,失蹤者是張志新(化名)和其女友劉穎千绪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梗脾,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荸型,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炸茧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瑞妇。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稿静,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辕狰,到底是詐尸還是另有隱情改备,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布柳琢,位于F島的核電站绍妨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柬脸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一毙驯、第九天 我趴在偏房一處隱蔽的房頂上張望倒堕。 院中可真熱鬧,春花似錦爆价、人聲如沸垦巴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骤宣。三九已至,卻和暖如春序愚,著一層夾襖步出監(jiān)牢的瞬間憔披,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工爸吮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芬膝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓形娇,卻偏偏與公主長得像锰霜,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桐早,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容