Game Framework學習筆記(1):初識Game Framework

 

寫在前面

什麼是Game Framework

Game Framework是一個基於 Unity 5.3+ 引擎的遊戲框架 ,完全開源、功能強大且作者一直在更新功能。

它主要對遊戲開發過程中常用模塊進行了封裝,很大程度地規範開發過程、加快開發速度並保證產品質量。

 

爲什麼要使用一個優秀的框架開發遊戲

大家可以看看這個UNITE -Unity項目架構設計與開發管理_騰訊視頻 ,這是在UNITE 2015 BEIJING上,時任Unity大中華區技術總監劉鋼的演講。

原則上Unity本身就是一個大的架構,但是爲了應付足夠多的環境,Unity沒有做過多的限制,既允許你僅僅只用單一的Empty Game Object,也也允許你自己客制複雜的 Manger of Mangers 來分類管理各個功能模塊。

當你準備開發一個稍大一點的遊戲時,就會發現遊戲內各種資源、實例如果不通過一些合理的方式整理起來,就會變得雜亂無章,無形之中提高了開發難度,遊戲越複雜,難度越大。這時候你就需要框架了。

 

爲什麼要學習使用Game Framework

對於遊戲開發者來說,最適合自己的框架無非是自己在從小項目到大項目的過程中,自己整理出來的可複用代碼。但是對於像我這樣沒什麼經驗的新手,想要學習這方面的知識,最快的方法無非是學習別人的框架了。Game Framework毫無疑問是一個非常優秀的框架,相對來說比較適合我們學習(要是作者能再多寫一些文檔就好了),而且也是開源的,作者E大(Ellan)遊戲上線時間也不長,工作上也比較忙,我們也沒法要求更多。

 

學習Game Framework有什麼要求

只要你接觸過Unity,知道C#最基礎的語法就能開始學習了(完全不用,因爲我自己就沒達到這個水平T-T)。

當然因爲我本身能力就非常有限,所以只能一步一步來。

開始接觸Game Framework

首先我們得下載Game Framework的資源包。

進入Game Framework官網的下載界面,點擊下載最新版本。

接着,新建一個Unity空項目,將資源包導入進去。

等待導入完成後,資源目錄是這樣的:

資源包本身爲我們提供了一個示例場景,我們雙擊切換至Example文件夾下的Example場景。

點擊Play按鈕,激活場景。

可以看到場景中左上角顯示了一個正在顯示幀數的方框,那是Game Framework Debugger。還能看到console裏面五條信息,三條Log,一條Warning和一條Error。

Game Framework version is 3.1.3. Unity Game Framework version is 3.1.3.
UnityEngine.Debug:Log(Object)
During this run, Game Framework will use editor resource files, which you should validate first.
UnityEngine.Debug:Log(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:Log(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:LogWarning(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:LogError(Object)

第一條Log信息提示當前Game Framework和Unity Game Framework的版本,第二條顯示我們目前使用的是Editor內的資源文件(而不是已經打包好的Asset Bundle,這個我會在以後的文章裏面講到)。

後面三條信息是作者分別用三種方式告訴我們,我們打開的是示例的空項目。

 

接着我們打開Example文件夾內的C#文件。

using GameFramework;
using GameFramework.Procedure;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
​
namespace GameFrameworkExample
{
    public class ProcedureExample : ProcedureBase
    {
        protected override void OnEnter(ProcedureOwner procedureOwner)
        {
            base.OnEnter(procedureOwner);
​
            string welcomeMessage = string.Format("Hello! This is an empty project based on Game Framework {0}.", GameFrameworkEntry.Version);
            Log.Info(welcomeMessage);
            Log.Warning(welcomeMessage);
            Log.Error(welcomeMessage);
        }
    }
}
​

可以看到,在重寫的OnEnter函數內,Log.Info(welcomeMessage);Log.Warning(welcomeMessage);Log.Error(welcomeMessage);這三句對應了三條消息。

這些代碼是通過什麼方式調用的?下篇文章我們就來學習Game Framework的核心內容之一:流程(Procedure)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章