UDN
Search public documentation:

UnrealScriptMetadataCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 虚幻脚本 >UnrealScript语言参考指南 > UnrealScript元数据

UnrealScript元数据


概述


变量也可以通过在每个变量上指定元数据的形式来具有额外信息,以供引擎或编辑器使用,从而提供扩展功能。可以使用元数据指定一个显示名称、工具提示信息、其他东西之间的最小值和最大值。

指定元数据


在UnrealScript中任何一个元数据都可以按照以下方式连接到一个属性上:

变量:

  var float MyVar<TAG=VALUE>
  

枚举型:

  enum EMyEnum
  {
     EME_ValA<TAG=VALUE>,
     EME_ValB<TAG=VALUE>,
  };
  

使用多个元数据说明

您可以为同一的属性使用多个元数据说明,在多个说明间使用字符 | 作为分隔。

比如:

  var()   LinearColor    DrawColor<DisplayName=Draw Color|EditCondition=bOverrideDrawColor>;
  

可用的元数据说明


这里是当前支持的元数据标签及它们的功能:

ToolTip=TEXT_STRING
在编辑器属性窗口中,当鼠标放到相应的属性上时,使 TEXT_STRING 作为工具提示信息出现。
注意: 最新添加了支持,脚本编辑器可以将 /** VALUE */ 注释自动地翻译为ToolTip的元数据。
DisplayName=TEXT_STRING
使属性的名称在编辑器的属性窗口中显示为 TEXT_STRING 而不是它的真实名称。

示例:
     Var() bool bEnableSpawning<DisplayName=Spawning Enabled>;
     

警告: 如果您修改UPropertyInputCombo 来在编辑器的复选框中排序枚举值,那么在枚举类型中使用DisplayName 将会引起问题。
ClampMin/ClampMax=FLOAT_VALUE
这些允许您区间限定属性的值。如果仅指定了 ClampMinClampMax 而没有指定另一项,那么属性将会使用标准的微调控制,但是将会对该属性进行适当的区间限定。如果两项都指定了,那么该属性将使用一个 滑块/编辑框 进行控制并进行适当的区间限定。请参照区间限定部分获得更多详情。
UIMin/UIMax=FLOAT_VALUE
这些可以和 ClampMin/ClampMax 结合使用来制定滑块条控制的范围。如果没有指定 UIMinUIMax ,那么则使用相应的 Clamp* 元数据代替。这仅影响滑块条;编辑框部分的控制仅遵循 Clamp* 的值。请参照区间限定部分获得更多详情。
ArrayClamp=ArrayProeprtyName
这允许您将一个 Int 型属性的值区间限定到一个数组属性的有效范围内。这意味着如果指定的数组具有4个元素项,那么 Int 型属性将会区间限定到 03 之间。这对于指定数组索引的属性是有用的,以防止关卡设计人员或美工人员设置一个会导致无效内存访问的值。请参照区间限定部分获得更多详情。
EditCondition=ConditionalPropertyName
这允许您基于另一个属性(Boolean型)的值来设置一个编辑器的属性的可编辑状态为启用的还是禁用的。比如,在UnrealScript类MyPackage.MyClass中有以下设置:
     /** Enable or disable spawning */
     Var() bool bEnableSpawning;
  
     /** Set the rate at which AIs are spawned. Has no effect unless bEnableSpawning = TRUE */
     Var() float RespawnsPerSecond<EditCondition=bEnableSpawning>;
     

bEnableSpawning 为false时,在编辑器中的 RespawnsPerSecond 将灰掉。这使事情不再另设计者感到迷惑。

重要注意事项: 这个元数据设置需要控制变量( RespawnsPerSecond )使用一个自定义属性项绑定(WxCustomPropertyItem_ConditionalItem)。

为了启用该功能,你需要在Editor.ini加入它,如下所示:
     [UnrealEd.CustomPropertyItemBindings]
     CustomPropertyClasses=(PropertyPathName=" MyPackage.MyClass: RespawnsPerSecond ",PropertyItemClassName="WxCustomPropertyItem_ConditionalItem")
     
MultilineWithMaxRows=INT_VALUE
这允许您创建一个 String(字符串) 属性,在属性窗口中该属性使用了多行文本框,并且具有指定的行编号。文本框最初以单行开始,并随着使用输入的 INT_VALUE 指定的文本,行数会不断增加。一旦达到最大行数,文本框将会开始滚动。
bShowOnlyWhenTrue=PropertyName
这允许您根据 [Game]EditorUserSettings.ini 文件中 [UnrealEd.PropertyFilters] 部分下设置的属性过滤器的值来控制某属性在属性窗口中的可见性。
FriendlyName=TEXT_STRING
由UI编辑器?使用。
AllowAbstract
如果存在于一个类的属性上,则用于编辑那个属性的编辑器下拉框将会包含抽象类。如果不存在,它们将仅包含具体的类。在这个元数据说明中没有必要指定一个值,比如True 或 False。
AutoComment=BOOLEAN_VALUE
当将该项添加到Kismet序列动作的属性上时,该属性及其当前值将会自动地作为注释出现在那个动作上方。如果想看到效果,可以在脚本中放置一个新的"Gate(门)"序列动作。在这个类中的bOpen和AutoCloseCount都使用了这个元数据选项。