2012年7月31日 星期二

自訂遊戲引擎

UE在執行遊戲前會先建立一個型別為GameEngine的遊戲引擎物件,然後將它的位址存放在全域指標GEngine裡。UE提供讓開發者自訂遊戲引擎的功能,只要繼承GameEngine自訂引擎類別,然後在DefaultEngine.ini裡指定自訂的類別即可:
[Engine.Engine]
GameEngine=MyGame.MyGameEngine 
GameEngine類別提供許多虛擬函式可供覆載,以下列出重要的函式:
  • Init():引擎初始化。
  • PreExit():關閉引擎前會呼叫這個函式。
  • Tick( DeltaSeconds ):更新遊戲時會呼叫這個函式。
  • Exec( Command, OutputDevice=GLog ):執行控制台指令。

範例


以下程式碼簡單地示範如何讓引擎在初始化完成後執行指定的命令。

class MyGameEngine extends GameEngine
    native;
    
var config string InitialCommand;

cpptext
{
    // UEngine interface
    virtual void Init()
    {
        Super::Init();
        
        if( InitialCommand.Len() )
        {
            Exec( *InitialCommand );
        }
    }
}

然後可以在DefaultEngine.ini指定命令:
[MyGame.MyGameEngine]
InitialCommand="showlog"

沒有留言:

張貼留言