我这边按照以前的思路,试图扩展一下现有的cocos提供的组件,但是我希望将某些属性设置给屏蔽,这个要怎么去实现呢?
我看creator中的ScrollView组件,可以通过是否勾选vertical和horizontal,使得对应的bar的那个属性变得隐藏和可见。
我想要实现一个类似的效果,比如把Node的位置完全不让外部去设置(只是举例子,需求肯定没那么简单)
我这边按照以前的思路,试图扩展一下现有的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 {
这种没用,或者说我就是先这么试过之后,发现父类的所有属性都会在属性检查器上展示,而我需要的是把父类的一些属性封掉,最起码不让属性检查其上能够直接看到和初始化这里的属性。
貌似这个是我需要的,里面有一个设置属性显示的参数配置,谢谢了
请问下, 你这最后实现的效果是什么样的呀 ?
就是有些参数,在属性检查器里被隐藏了,通过设置参数的property的visible为false,不然父类的参数会被显示
另外,其实vscode可以通过跳转看到property的申明定义,看了源码之后,我发现property里的visible是可以传一个boolean,或者是一个返回boolean的函数。
然后刚才我试了一下使用函数,发现是可以通过获取这个组件自身的属性变化的。
所以我推测ScrollView里可以动态切换Bar的显示的逻辑,就是这个属性的visible是一个
visible : function():boolean{
return this.veritcal;
}
这样的函数

感觉这个很赞呀