【Unity】我也想使用Photon #03 連接後的流程
那麼這篇文章一樣是研究Photon內部結構。
前一篇是介紹Photon NetWork從未連接的狀態直到連接狀態。
這篇則是介紹連接到伺服器後的流程。
這篇文章是使用Unity5.4.1f1以及PUN1.75。
- 關於未連接狀態到連接狀態
- 連接狀態與Auto-Join Lobby之間的關係
- 能使用的方法
- 會被呼叫的事件方法
- 連接狀態以後的流程說明
關於未連接狀態到連接狀態
連接狀態與Auto-Join Lobby之間的關係
這次這篇文章內所說的「Photon連接狀態」指的是、OnConnectedToMaster()
後的狀態。
Auto-Join Lobby是有效的情況下、連接後立刻就進入了預設的大廳。
正因如此、OnConnectedToMaster()
不會被呼叫、這次研究的內容不會進到「Photon接続状態」。
從進入大廳後的流程以後會說明。
【Unity】我也想使用Photon #02 連接伺服器的流程
原文
www.urablog.xyz
文中出現的[方法](https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/classes-and-structs/methods) 為C#方法的簡稱。
從上一篇開始就打算使用Photon去製作多人連線遊戲。
但是光介紹一個Connect方法、就花了很多時間。
在Photon中有著事件用的方法當「連接成功」 「已進入房間」等的狀況會被呼叫。
這次要介紹Photon中網路連接用的方法、並且去理解連接成功與否會被呼叫的方法與流程。
這篇文章是使用Unity5.4.1f1以及PUN1.75。
- Photon事件方法
- 關於 Auto-Join Lobby
- 從未連接狀態到連接狀態可使用的方法們
- 使用到的方法
- 會被呼叫的事件方法
- 未連接到連接狀態的流程。
Photon事件方法
在Photon中、當「連接成功」 「已進入房間」等的狀況專用事件方法會被呼叫。
這個呼叫方式並非使用C# Delegate做呼叫、而是利用GameObject的SendMessage()
去呼叫。
就像Unity事件方法中的Awake()
或Update()
、方法名稱與
參數型別與參數數量是正確的話就會被呼叫。
達成被呼叫的條件也很簡單、只要繼承MonoBehaviour
的類別就OK了。
正因為很簡單、使用很多事件函數的類別有可能使得程式碼變得更複雜、這點需要注意。
那麼到底有哪些事件方法可以使用呢?
直接看IPunCallbacks
的script reference可能是最快的。
[阿星Tip]:IPunCallbacks
位於PhotonClasses類別當中。
Photon Unity Networking: IPunCallbacks Interface Reference
好多阿……。
雖然MonoBehaviour
類別也有很多事件方法、Update()
或OnCollisionEnter()
之類的、使用頻率也很高、這類型的方法先記起來會比較好。
【Unity】我也想使用Photon #01 多種連線方式介紹
unity Mask & 水中效果(模糊)
- MASK
- 模糊特效
本篇兩個效果皆適用於NGUI、Unity Sprite
UGUI沒測試過 也許可以(有興趣自己嘗試) 目前個人還是偏好使用NGUI。
遮罩Shader:
https://mega.nz/#!7s50XaTZ!8x1TvkRq0vu2WfJFDEcStkv1745-5fl-xsjK_UkGF24
模糊Shader:
https://mega.nz/#!q0ARjIpR!520-712S3ilA-jcaSYt5IjrmDDuvmsBtJSXCRN5UkVg