1. 程式人生 > >【實戰】Unity3d實戰之Unity3d網路遊戲實戰篇(6):服務端框架的搭建

【實戰】Unity3d實戰之Unity3d網路遊戲實戰篇(6):服務端框架的搭建

Unity3d實戰之Unity3d網路遊戲實戰篇(6):服務端框架的搭建

學習書籍《Unity3d網路遊戲實戰》 羅培羽著 機械工業出版社
本文是作者在學習過程中遇到的認為值得記錄的點,因此引用的程式碼等資源基本出資羅培羽老師的書籍
以下為個人的學習簡記,與諸君共論 由於U3D的官方案例Tank Tutorial中對坦克的基本操作已經有了詳盡的描述,因此本文著重於面板系統、服務端基本網路框架和客戶端基本網路框架的搭建
如有疑問或者描述錯誤的地方,歡迎各位提出或修正,討論交流是獲取和鞏固知識的重要途徑之一!

 整個服務端框架分為3層:
這裡寫圖片描述
 底層:負責Client的監聽、資料處理、協議構建、資料庫操作等。
 中間層:對客觀世界事物的抽象,實現類物件的各種方法;
 邏輯層:實現遊戲邏輯,根據接收到的不同協議實現不同的邏輯。

 服務端框架的目錄結構如下:
 這裡寫圖片描述
 底層:
  ServNet:處理Server與各Client的連線以及資料接收;
  DataMgr:根據需求實現對資料庫的各種操作;
  Protocol:編寫協議實現Server與Client之間的有效通訊;
 中間層:
  Player:對玩家的抽象,擁有玩家id、角色、下線等方法的實現;
  Conn:實現Server與Client之間的連線的管理,其作用與第四節描述的一致;
 邏輯層:
  HandleConnMsg:處理連線相關的事務,如心跳機制、使用者登陸登出等;
  HandlePlayerMsg:處理玩家相關的事務,如位置同步、得分獲取等;
  HandlePlayerEvent:處理玩家事件,某個時間發生時要處理的事情,如玩家登陸登出等;
  PlayerData:指定需要儲存到資料庫的角色屬性,如金幣、等級、勝負數等;
  PlayerTempData:指定玩家角色的臨時屬性,如是否在房間內、是否在戰鬥中、是否已準備等;