2013年1月30日 星期三

自訂屬性控制項

UEd的屬性視窗會根據屬性的型別使用不同的控制項,也提供開發者自訂屬性控制項的擴充功能。屬性控制項的基礎類別是WxItemPropertyControl,自訂屬性控制項必須直接或間接繼承此類別。因為UEd會利用wxWidget的RTTI機制建立控制項,開發者需要使用wxWidget提供的類別宣告和定義巨集註冊自訂類別。還要在DefaultEditor.ini檔設定屬性和自訂控制項的綁定,UEd才會使用自訂控制項取代預設的控制項。

2013年1月9日 星期三

自訂UnrealScript休眠函式

UnrealScript的休眠函式(latent function)提供開發者一個簡便的寫法等待某個條件完成。可以在Actor.uc裡找到其中兩個內建的休眠函式:
// Latent functions.
native(256) final latent function Sleep( float Seconds );
native(261) final latent function FinishAnim( AnimNodeSequence SeqNode, optional bool bFinishOnBlendOut );
休眠函式只能在類別的狀態(state)中呼叫,它會暫停目前狀態內的程式執行,直到指定的條件達成。下例中的GotoState()會等Sleep(1)完成後才執行:
class MyPawn extends GamePawn;

state Idle
{
    event BeginState(Name PreviousStateName)
    {
        Sleep(1);
        GotoState('');
    }
}