Cocos装饰器

属性检查器相关参数

属性装饰器的各种特性是通过 @property() 的参数来指定的。完整可选择参数可以参考:

参数名说明类型默认值备注
type限定属性的数据类型(Any)undefined
visible在 属性检查器 面板中显示或隐藏boolean(注1)
displayName在 属性检查器 面板中显示为另一个名字stringundefined
tooltip在 属性检查器 面板中添加属性的 Tooltipstringundefined
multiline在 属性检查器 面板中使用多行文本框booleanfalse
readonly在 属性检查器 面板中只读booleanfalse
min限定数值在编辑器中输入的最小值numberundefined
max限定数值在编辑器中输入的最大值numberundefined
step指定数值在编辑器中调节的步长numberundefined
range一次性设置 min、max、step[min, max, step]undefinedstep 值可选
slide在 属性检查器 面板中显示为滑动条booleanfalse
group在 属性检查器 面板中显示为分组,样式默认为 tab{ name } 或 { id, name, displayOrder, style }undefined

属性装饰器

@property({
    type: Node,
    visible: true,
})
targetNode: Node | null = null;

声明属性 children 的 cc 类型为 Node 数组

@property({
    type: [Node]
})
children: Node[] = [];
@property({
    type: String,
}) // 警告:不应该使用构造函数 String。等价于 CCString。也可以选择不声明类型
text = '';

分组

当脚本中定义的属性过多且杂时,可通过 group 对属性进行分组、排序,方便管理。同时还支持对组内属性进行分类。

group 写法包括以下两种:

  • @property({ group: { name } })
  • @property({ group: { id, name, displayOrder, style } })
参数说明
id分组 ID,string 类型,是属性分组组号的唯一标识,默认为 default
name组内属性分类的名称,string 类型。
displayOrder对分组进行排序,number 类型,数字越小,排序越靠前。默认为 Infinity,表示排在最后面。
若存在多个未设置的分组,则以在脚本中声明的先后顺序进行排序
style分组样式,目前支持 tab 和 section 样式。 默认为 tab
// 分组一
// 组内名为 “bar” 的属性分类,其中包含一个名为 label 的 Label 属性
@property({ group: { name: 'bar' }, type: Label }) 
label: Label = null!; 
// 组内名为 “foo” 的属性分类,其中包含一个名为 sprite 的 Sprite 属性
@property({ group: { name: 'foo' }, type: Sprite }) 
sprite: Sprite = null!;

// 分组二
// 组内名为 “bar2” 的属性分类,其中包含名为 label2 的 Label 属性和名为 sprite2 的 Sprite 属性,并且指定排序为 1。
@property({ group: { name: 'bar2', id: '2', displayOrder: 1 }, type: Label }) 
label2: Label = null!; 
@property({ group: { name: 'bar2', id: '2' }, type: Sprite }) 
sprite2: Sprite = null!;

 

因为分组一未指定 displayOrder,分组二指定了 displayOrder 为 1,所以分组二会排在分组一的前面。 

若需要对分组内的属性排序,也可以使用 displayOrder。以分组二为例,目前是按照在脚本中定义的先后顺序进行排序,label2 在 sprite2 的前面。我们将其调整为:

// 分组二
// 组内名为 “bar” 的属性分类,其中包含名为 label2 的 Label 属性和名为 sprite2 的 Sprite 属性,并且指定排序为 1。
@property({ group: { name: 'bar2', id: '2', displayOrder: 1 }, displayOrder: 2, type: Label }) 
label2: Label = null!; 
@property({ group: { name: 'bar2', id: '2' }, displayOrder: 1, type: Sprite }) 
sprite2: Sprite = null!;

内置类型界面 

针对一些常用类型,引擎内部提供了默认界面,开发者可以根据自身的需求使用:

  • 颜色界面:

代码示例如下:

@property(Color)
color:Color
  •  曲线:用于保存曲线类型、样式以及采样数据。

代码示例如下:

@property(RealCurve)
realCurve:RealCurve = new RealCurve();
  •  曲线范围:可以通过常量、曲线、双曲线或双常量进行控制。

代码示例如下:

@property(CurveRange)
curveRang : CurveRange = new CurveRange();
  •  渐变色:记录渐变色的关键值和用于计算渐变色的结果

代码示例如下:

@property(Gradient)
gradient = new Gradient();
  •  渐变色范围:通过颜色、渐变色、双颜色或双渐变色控制颜色

 

代码示例如下:

@property(GradientRange)
gradientRange:GradientRange = new GradientRange();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值