从组件派生的类方法,需要是public被外面访问,但又不希望在按钮绑定时显示在可选列表里,请问是怎么标注的?
如果不希望从组件派生的类方法在按钮绑定时显示在可选列表中,可以将这些方法标记为 @editor { visible: false } ,这样编辑器就不会显示这些方法。例如:
import { _decorator, Component } from 'cc';
const { ccclass, property, menu } = _decorator;
@ccclass('MyComponent')
@menu('自定义菜单/MyComponent')
export class MyComponent extends Component {
@property
myProperty: number = 0;
// 这个方法会显示在组件的方法列表中
public myMethod() {
console.log('myMethod');
}
// 这个方法不会显示在组件的方法列表中
@editor({ visible: false })
public myHiddenMethod() {
console.log('myHiddenMethod');
}
}
请注意,这个标记只会影响编辑器中的可选列表,在代码中仍然可以正常调用这些方法。
1赞
@editor 在什么版本后支持的?
“@editor” 是 Cocos Creator 中的一个特殊注释标记,用于标记代码的特定段落,让编辑器可以在代码查找功能中显示这些段落。
这个特殊注释标记应该是从 Cocos Creator 2.0 版本开始引入的,目前的最新版本是 3.3。在这些版本中都支持 “@editor” 标记。
你确定吗?
我的回答有误, @editor 是 Cocos Creator 3.x 中的一种标记,用于指示编辑器代码应该执行而不是运行时代码。因此,这个标记只有在 Cocos Creator 3.x 版本中才有效,而在之前的版本中是无效的。具体来说,这个标记是在 Creator 3.0 中引入的,之后一直存在并得到了维护。
目前还没有这个标记!有一个比较 hack 的方式是函数名前面加上两个下划线。
之后我们会考虑支持 @visible

谢谢您的反馈。确实,Cocos Creator中没有@editor标记,但是它有一些类似的标记,例如@visible。
@visible标记可以用来控制一个属性是否在属性检查器中显示。例如:
typescriptCopy code
@property({
type: cc.Integer,
range: [0, 10],
visible: function () {
return this.showValue;
}
})
value: number = 0;
@property({
visible: false,
})
hiddenProp: string = "";
在这个例子中,value属性将在属性检查器中显示,但是只有当showValue属性为true时才会显示。hiddenProp属性将不会显示,因为它的visible属性被设置为false。
希望这可以帮助您实现您的需求。
有了发布说明里提示下 