项目实训(十四)pun的建立,使用以及注意方法
提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、pun的建立
- 二、pun的使用
- 三、注意方法
- 注意點(diǎn)1
- 注意點(diǎn)2
前言
PUN基礎(chǔ)教程,pun的使用以及注意方法
一、pun的建立
首先在商店頁面找到該 Photon Unity Networking Free 插件。
導(dǎo)入,由于 已經(jīng) 注冊(cè) 了 Photon 的賬號(hào)。
這里要填寫 AppId 來建立工程。先進(jìn)行下一步 ,登錄 Photon 官網(wǎng) 地址:https://www.photonengine.com/en/PUN
獲得 AppId 再 填寫這一欄。
Photon 官網(wǎng) 地址:https://www.photonengine.com/en/PUN
沒有賬號(hào)的注冊(cè)一個(gè) Photon 賬號(hào)。
輸入 郵箱 地址,和 在 photon 注冊(cè) 的賬號(hào)密碼。
進(jìn)入 Dashboard 頁面。這里就是 App 頁面。
創(chuàng)建一個(gè) 新的 App
自定義 App 的名字 (暫時(shí)命名為 test_001),鼠標(biāo)移動(dòng) 到 App ID: 上面 ,復(fù)制后面 的號(hào)碼
回到 Unity ,粘貼 剛才 復(fù)制的 App ID 。Setup Project
系統(tǒng) 自動(dòng) 建立了一個(gè) PhotonServerSettings.asset 的文件。
二、pun的使用
1.創(chuàng)建AppId,可以通過官網(wǎng)免費(fèi)申請(qǐng)。這樣,我們就得到了一個(gè)可以同時(shí)容納20人的云應(yīng)用服務(wù)空間。
2.連接服務(wù)器、房間訪問和創(chuàng)建。這是聯(lián)網(wǎng)的基礎(chǔ)內(nèi)容,可以通過一個(gè)空對(duì)象掛載Launcher腳本實(shí)現(xiàn)。其中,Launcher腳本包含了版本、鏈接、回調(diào)函數(shù)等基礎(chǔ)內(nèi)容,可以作為標(biāo)準(zhǔn)化的對(duì)象嵌入到任何新的網(wǎng)絡(luò)應(yīng)用中。
3.創(chuàng)建UI系統(tǒng),從簡(jiǎn)單的UI系統(tǒng)中,學(xué)會(huì)用戶交互,通過用戶輸入控制網(wǎng)絡(luò)。
4.使用簡(jiǎn)單數(shù)據(jù)存儲(chǔ)PlayerPrefs系統(tǒng),通過UI控件,對(duì)玩家的基本信息進(jìn)行存儲(chǔ)交互。
5.通過LoadScene()可以進(jìn)行多場(chǎng)景之間的調(diào)用,這種調(diào)用可以通過場(chǎng)景號(hào)碼或者場(chǎng)景名稱來調(diào)用。
6.場(chǎng)景管理器:用于管理場(chǎng)景之間的連接、切換、交互等功能,是一個(gè)比較通用的模塊,可以作為一個(gè)預(yù)制件處理。
7.自定義的腳本可以看成一個(gè)自定義的組件,通過組件掛靠到具體的實(shí)例(Object)的方法,可以將腳本發(fā)揮作用;有些單純的腳本發(fā)揮作用的可以通過掛載在空對(duì)象上實(shí)現(xiàn)功能。
8.網(wǎng)絡(luò)編程需要對(duì)各種網(wǎng)絡(luò)操作流程有較深的理解,比如一個(gè)簡(jiǎn)單的流程:連接服務(wù)器 - 將本機(jī)作為主機(jī)設(shè)置游戲空間網(wǎng)絡(luò) - 在網(wǎng)絡(luò)建好之后的回調(diào)函數(shù)中執(zhí)行創(chuàng)建并進(jìn)入房間的方法 - 在進(jìn)入房間之后的回調(diào)函數(shù)中加載游戲場(chǎng)景 - 游戲場(chǎng)景切換邏輯與進(jìn)出房間的腳本掛靠。這樣以后,就完成了單純的基本網(wǎng)絡(luò)架構(gòu)。
9.建立玩家系統(tǒng):首先考慮的是模型,然后是動(dòng)畫邏輯,然后是控制語句,接著是場(chǎng)景優(yōu)化(包括相機(jī)跟隨,姿態(tài)優(yōu)化等),后面還有對(duì)戰(zhàn)交互系統(tǒng)等更復(fù)雜邏輯的構(gòu)建。
三、注意方法
注意點(diǎn)1
1.習(xí)慣于用log來確保每一個(gè)可能的錯(cuò)誤都被提取到,雖然很枯燥,但是卻有利于長(zhǎng)遠(yuǎn)打算。
2.Time.deltaTime是使得FixedUpdate真正活起來的幕后方法,如果要脫離幀率存在,可以在Update中使用這個(gè)方法定制新功能。
3.Trigger與Collision的區(qū)別與聯(lián)系:都可以檢測(cè)碰撞,只不過Trigger方法不發(fā)生物理行為,而Collision方法可以實(shí)現(xiàn)全部的物理屬性。
4.聯(lián)網(wǎng)同步:變換同步組件+動(dòng)畫同步組件,同時(shí)可以設(shè)置同步幀率特性(與本機(jī)幀率不同)。
5.加上PhotonNetwork.Connected == true作為判斷條件,可以允許用戶本地測(cè)試而不影響聯(lián)網(wǎng)效果。
注意點(diǎn)2
1.使用IpunObservable.OnPhotonSerializeView重構(gòu)方法可以實(shí)現(xiàn)對(duì)本地 / 網(wǎng)絡(luò)玩家實(shí)時(shí)數(shù)據(jù)的分離、同步等功能。
2.所有Application的內(nèi)容都過時(shí)了,使用SceneManager新方法可以管理,具體查找Standard Events的示例。
3.使用Static方法可以保證本地玩家的唯一性,同時(shí)需要使用this指針將實(shí)例連接到static變量中。
4.DontDestroyOnLoad(this.gameObject)方法可以保證有玩家退出時(shí)不對(duì)場(chǎng)景內(nèi)其他玩家造成銷毀的影響。
總結(jié)
以上是生活随笔為你收集整理的项目实训(十四)pun的建立,使用以及注意方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用80percent开发rails程序
- 下一篇: 【持续更新】Pun多人在线游戏开发教程