问一个属性检查器的问题

我这边按照以前的思路,试图扩展一下现有的cocos提供的组件,但是我希望将某些属性设置给屏蔽,这个要怎么去实现呢?

我看creator中的ScrollView组件,可以通过是否勾选vertical和horizontal,使得对应的bar的那个属性变得隐藏和可见。

我想要实现一个类似的效果,比如把Node的位置完全不让外部去设置(只是举例子,需求肯定没那么简单)

这得改源码吧

你说的是装饰器吗?之前放空姐在快上车上面讲过类似的,你可以看一下它的源码,store商店有免费的
https://docs.cocos.com/creator/manual/zh/scripting/decorator.html?h=装饰器

你说的是类似这种吗 ?
一般这种拓展到组件上就行了,
可以这样写, 组件化开发

// Cocos 2.x
@ccclass
export class main extends cc.ScrollView {
// export class main extends cc.Component {

// Cocos 3.x
@ccclass("main")
export class main extends ScrollView {
// export class main extends Component {

下图 Store 地址 store.cocos.com/app/detail/3519

image

这种没用,或者说我就是先这么试过之后,发现父类的所有属性都会在属性检查器上展示,而我需要的是把父类的一些属性封掉,最起码不让属性检查其上能够直接看到和初始化这里的属性。

貌似这个是我需要的,里面有一个设置属性显示的参数配置,谢谢了

请问下, 你这最后实现的效果是什么样的呀 ?

就是有些参数,在属性检查器里被隐藏了,通过设置参数的property的visible为false,不然父类的参数会被显示

1赞

另外,其实vscode可以通过跳转看到property的申明定义,看了源码之后,我发现property里的visible是可以传一个boolean,或者是一个返回boolean的函数。
然后刚才我试了一下使用函数,发现是可以通过获取这个组件自身的属性变化的。

所以我推测ScrollView里可以动态切换Bar的显示的逻辑,就是这个属性的visible是一个
visible : function():boolean{
return this.veritcal;
}
这样的函数

1赞

:+1:
感觉这个很赞呀