
HTFramework是基於Unity的一個快速開發框架,集需求模塊化、代碼重用性、實用便捷性、功能高內聚、統一編碼規範、可擴展性、可維護性、可通用性、可插撥性為一體,並提供持續維護、升級。
Unity版本:2022.3.34。
.NET API版本:.NET Framework。
AspectTrack - 根據AOP思想架構的一個面向切面的程序代碼追踪模塊,它可以跟踪每一個方法的調用,在調用前阻斷該方法,亦或是更改其傳入的實參,更改其返回值等!可以用於調用日誌打印,系統運行監控等需求。
Audio - 項目中所有音頻的管理器,提供統一的接口用來播放、暫停、停止各種音頻資源。
Controller - 封裝了主角控制、主攝像機控制等,簡化了大量重複代碼。
Coroutiner - 協程調度器,通過協程調度器啟動的協程,將會處於調度器的監控中,可以通過CoroutinerTracker追踪面板查看協程的運行狀態、運行耗時,可重啟、終止任意協程。
CustomModule - 框架內置了多個常用的模塊,如果想要添加自己的模塊,通過CustomModule添加自定義模塊即可,自定義模塊擁有與內置模塊完全一樣的生命週期。
DataSet - 自定義數據集,任何需要存儲數據的地方都可以定義為自定義數據集,包括預製的配置文件、運行時生成的動態數據、從後台拉取的各種數據等。
Debug - Debug模塊自帶Debugger運行時調試器,可以監控一些常規數據與軟件運行環境,或是進行一些高級的操作,比如檢索場景所有遊戲對象(等效於編輯器內Hierarchy窗口的功能),檢索遊戲對象的所有組件(等效於編輯器內Inspector窗口的功能)。
ECS - 實體-組件-系統,此ECS非Unity的ECS,並不一定會帶來性能的提升,只是基於ECS的思想,建立在Unity現有的組件模式之上,以ECS模式進行開發可以避開項目後期繁重的繼承鏈,提升開發速度和質量、以及項目穩定性。
Entity - 實體管理器,除去UI以外,場景中的其餘可見物體都應該抽象為Entity,在Entity之上配合FSM一起管理邏輯,將是一個不錯的搭配。
Event - 可以將一切操作定義為具體的全局事件,通過訂閱事件、拋出事件以驅動整個業務邏輯。
Exception - 異常處理者,當程序任何部位發生未知、未捕獲的異常時,他會在這裡被截獲,並寫入日誌文件,同時支持在異常發生時打開指定程序(僅在PC平台),或者在異常發生時回饋日誌到指定郵箱。
FSM - 模擬一切可以抽象為有限狀態機結構的業務邏輯,類似於角色動畫、怪物AI、任意有獨立邏輯的個體等。
Hotfix - 以C#反射實現的輕量級熱更新框架,開發非常方便,新項目只需要拉取框架源碼後,一鍵即可創建熱更新環境,之後便可以用C#正常開發,目前已支持在熱更新庫中動態修復外界的任何方法,無需重新發布項目。
Input - 將任意輸入都定義為虛擬輸入,再由Input模塊統一調用,將是跨平台輸入的最優解決方案。
Instruction - 指令系統,可在運行時編譯並執行任意指令代碼,達到最快速度修補程序的功能。
Main - 框架主模塊,提供訪問其他模塊的快捷接口,還支持快捷設置腳本定義、指定全局主要數據類、設置項目授權、以及配置全局參數等。
Network - 網絡客戶端模塊,以單個通信管道為單位,每個管道均支持TCP/UDP等協議,可以為每個管道定義通信消息格式,基本能勝任一些常見的通信環境。
ObjectPool - 專用於GameObject類型的對像池,可以復用任意GameObject對象,以達到減少系統在頻繁創建和刪除對象時的開銷。
Procedure - 流程是框架的核心模塊,也是最基本的模塊,他貫穿整個框架的始終,從框架的生命週期開始,到生命週期結束,都會在流程間完成,同時,他又是一個強化版的有限狀態機,當在多個流程間切換直至最終流程時,便代表整個系統的結束。
ReferencePool - 可用於任意引用類型(除GameObject)的對像池,可以復用任意引用類型對象,以達到減少系統在頻繁創建和刪除對象時的開銷。
Resource - 資源加載管理器,主要用於動態加載資源(只支持異步加載),在加載中或加載完成後都可以進行自定義操作,現在主要支持Resource加載模式、AssetBundle加載模式、Addressables加載模式,比如,UI模塊就會自動調用資源管理器加載UI實體。
StepMaster - 步驟編輯器,嚴格來說,StepEditor只是框架的一個內置工具,他最開始的用途是用來解決一系列冗長的線性任務,為了實現可視化和降低後期改動的複雜度,當然,也可以用作流程控制器。
TaskMaster - 任務編輯器,可以自定義任務點,設置任務達成條件,多個任務點組成一個任務內容,使用一系列任務內容完成角色扮演的設計。
UI - 用於管理全局的UI實體,以省去手動創建UI實例、銷毀UI實例等一系列操作,他可以在非常方便且省去不必要的開銷優勢下,讓你條例清晰的組織和管控好任何復雜的UI結構。
Utility - 框架實用工具,包括一些批處理工具及編輯器工具。
WebRequest - 網絡請求模塊,主要用於與web服務器通信,比如請求某一網絡鏈接或服務器接口,獲得回复或下載網絡上的資源。
AI【可選模塊】 - AI相關模塊,比如A*尋路以及各種人工智能模塊。
Deployment【可選模塊】 - 輕量級資源部署管線,整合資源打包、資源版本構建、資源版本更新為一體,快速實現資源部署和交付遊戲。
GameComponent【可選模塊】 - 遊戲組件模塊,本模塊整合了多個遊戲開發過程中可能會涉及到的子系統或組件,包括但不僅限於文件系統、本地化系統、新手引導系統、時間系統、AVG2D系統、FTG2D系統、RPG2D系統等,且各個系統或組件均為可插撥式,可一鍵移除不需要的系統或組件,或再次一鍵導入。
AssetBundle Browser 1.7.0。
Dotween Free 1.2.632。
LitJson 0.17.0。
入門級Demo。
應用級Demo - 超級坦克大戰。
應用級Demo - FTG2D橫版自由格鬥。
應用級Demo - RPG2D角色扮演與回合製戰棋。
1.框架中所有On開頭的函數為生命週期函數或回調函數,均由框架呼叫,請勿手動調用。
2.框架中的Procedure(流程)必須包含至少一個流程才能正確構建項目,而其他模塊,如無需要,均可以不使用。
1.入口場景為一切的開始,也為一切的結束,整個遊戲的生命週期都將在入口場景中完成,不建議使用多場景切換模式,如果確實需要使用,可以將其他場景打入AB包內載入.
2.入口場景中只包含框架主模塊(或其他自定義主模塊、主控制器),其他任何東西都應該是動態加載的。
Addressables - 接入Addressables可尋址系統。
Assets Master - 資產管理器,允許你在編輯模式或是運行模式非常直觀的查看和管理當前打開場景中的你感興趣的資產。
Code Snippet Executer - 適用於代碼片段測試、單元測試的編輯器工具。
HybridCLR - 接入HybridCLR熱更新。
Inspector - 支持通過簡單的在序列化字段上添加特性標記從而實現在Inspector界面自定義多種實用的檢視器效果。
License - 授權驗證功能支持在你的遊戲啟動時,執行指定的授權檢查,可以是本地授權檢查,也可以是遠程授權檢查,只有授權檢查通過才能正常進入遊戲,如果授權檢查失敗,框架將會癱瘓整個程序,無論用戶做出任何補救措施都將是徒勞。
Markdown Text - MarkdownText為Text的擴展加強版,支持在運行時解析並顯示Markdown格式的文本。
MVVM - UI的數據驅動模式。
Scene Handler - 支持通過簡單的在序列化字段上添加特性標記從而實現在Scene界面自定義多種實用的控制柄。
Settings - 全局設置面板可以快捷、統一的設置全局的一些參數,還可以自定義設置項,用來設置自己的任何遊戲參數。
Table View - 使用TableView可以很方便的在編輯器中繪製表格視圖。
控制反轉- 在Unity中使用控制反轉模式。
標準化命名- 建立統一的標準化命名規範。
1.拉取框架到項目中的Assets文件夾下(Assets/HTFramework/),或以添加子模塊的形式。
2.在入口場景的層級(Hierarchy)視圖點擊右鍵,選擇HTFramework -> Main Environment(創建框架主環境),並刪除入口場景其他的東西(除了框架的主要模塊,其他任何東西都應該是動態加載的)。
3.參閱各個模塊的幫助文檔,開始開發。