由於UnrealScript裡已經定義了一個名為double的struct在Object.uc如下:
struct {DOUBLE} double { var native const int A; var native const int B; };所以在本例中的倍精確度浮點數型別就改叫real以避免名稱衝突。當然real寫完之後其實是可以取代原來的double。這個struct只是給原生屬性佔位用的,實際上不能在UnrealScript中當成浮點數使用。
除了加入double型別外,當然還會示範如何加入基本的四則運算:
native(1111) static final operator(20) real + ( real A, real B ); native(1112) static final operator(20) real - ( real A, real B ); native(1113) static final operator(16) real * ( real A, real B ); native(1114) static final operator(16) real / ( real A, real B );先在UnNames.h中定義待會會用到的名稱:
REGISTER_NAME( 16, DoubleProperty) REGISTER_NAME( 17, Real)所有的內建型別都有對應的屬性類別,在UnType.h中定義對應double型別的UDoubleProperty類別: