Unity手遊之路 基於Unity+Java的聊天室源碼

項目介紹這是一個簡單的Unity項目,實現最基本的聊天室羣聊功能。登錄聊天室後,用戶可以輸入信息進行發言,其他人可以收到消息。玩家還可以更改暱稱。項目詳細描述的前後端Socket通信,編碼,解析二進制流的過程。
  • 這個項目的主要目標有幾個:
          1.實現Unity的前後端通信進制
          2.學習Protobuf的應用
  • 最終的效果

  • 前端
           a.網絡通信NetClient.cs
採用c#的tcp通信方式。在初始化時,建立連接。然後在Unity的每幀函數Update()檢測服務端有無數據過來。爲了避免粘包等情況的發生,前後端的消息體都是這樣結構的:消息體長度+消息體內容。在解析的過程中,先解析消息體長度,然後等待足夠的二進制流,最後再利用Protobuf-net進行解碼成實體對象。

發送消息的過程剛好相反。將實體對象序列化成二進制流,然後組裝成消息體,發送到後端

           b.UI設計
程序的UI採用NGUI來製作。界面佈局比較簡單。暱稱框,消息列表,消息框。命名好,佈局好,然後在程序中處理提交函數,將消息發送到後端。當後端消息推送過來是,顯示在消息列表中。有一個沒來得及完善的地方,是目前還不支持中文,還沒有及時弄好字體集。
  • 後端
服務端採用Netty網絡框架,可以快速,高效地實現一個服務端。按照Netty的基本流程,我們可以快速搭建好一個服務器。主要的任務是編碼和解碼的過程。按照上述的消息體結構,我們同樣是先解析長度,再讀取內存,最後用Protobuf解碼。服務器的業務邏輯很簡單,就是廣播所以的聊天信息。當客戶端連接時,將連接保存起來,方便後面進行所有連接的廣播。
  • 總結
該項目的源碼已經放在GitHub  下載地址,歡迎大家查閱,提意見。有任何問題歡迎一起探討[email protected]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章