2012年5月13日 星期日

開關Unreal屬性編輯

開發者可以在UnrealScript中為一個屬性指定另一個布林屬性作為可編輯開關。當指定的布林屬性為false時,在UEd的屬性視窗中被指定的屬性控制項會變成不可編輯的失能狀態。

指定的方法是透過設定UnrealScript的EditCondition元資料。以下程式碼展示如何設定EditCondition元資料:
class TestEditCondition extends Object;

var() bool bSwitch1;

var() int Int1 <EditCondition = bSwitch1>;

var bool bSwitch2;

var() int Int2 <EditCondition = bSwitch2>;
下圖是當以上布林屬性為false時,屬性視窗的外觀:

可以看到沒有打小括弧的bSwitch2,雖然本身不可編輯,但因為指定為Int2的EditCondition,所以在Int2屬性控制項左方出現一個checkbox代替。這樣反而比bSwitch1和Int1要來的乾淨俐落,只用一行就可以顯示兩個屬性。

不過當有多個屬性指定同一個布林屬性為EditCondition時,開關checkbox也會造成其他連動的checkbox一起變更,可能會造成使用者的困擾。所以在這種情況還是把布林屬性設為可編輯,讓它出現在屬性視窗上,較為明瞭。

沒有留言:

張貼留言