参考公司u3d 项目组想做一个类似的功能:
功能描述:
想自定义一些游戏资源类型 如 panelPrefab,modelPrefab, timeline,等等,放到自定义资源(creator 没有暂时使用 prefab)上面使用脚本peroperty 进行编辑.
先遇到两个问题,如图
1, property 不支持 设置后的函数回调,
2 不支持 property([CocosResItem])
这是我写法有问题吗?
不支持设置后回调是什么意思,是指属性回调吗,那可以用 set 和 get,第二个问题直接这么用就可以了
@property({type: ResourceType})
resType = ResourceType.PREFAB;
我想这样的实现函数回调。
@property({readonly:true})
private typedesc:string = “”;
@property({type:Enum(ResourceType),function(){
this.typedesc = ResourceType.desc /// 显示 这个资源类型的表述。
}})
public resType:ResourceType = ResourceType.None;
第二个问题是:
@property([CocosResItem])
这样写,在编辑器内 没有效果。
首先回调时可以通过set get实现的,另外这个CocosResItem类你加了@ccclass装饰器嘛?加了才能实现序列化与反序列化
建议在使用之前看一下我们装饰器的用法哈
https://docs.cocos.com/creator/manual/zh/scripting/decorator.html?h=装饰器
你这里的用法是不正确的
@property({type:Enum(ResourceType),visible: function(){
this.typedesc = ResourceType.desc
}})
@property([CocosResItem]) 这里的 [] 一般数组的用法才会这么写
结合两位的意见实现了一下效果


1 CocosResItem类增加 @ccclass装饰实现数组
2 通过get set 实现了 回调 并且 @property({visible:false}) _resType 保存了数据。
但是,求教一下

我想实现的是这样的效果,在creator中可以实现吗?
我猜你想这样?

牛啊。多谢。
厉害。就是这个小效果。感谢。这样舒服多了。如果这个东西做好了不用挂到perfab上就好了,这个可能需要引擎组去开发一个自定义的资源文件类型。
你这是什么字体,铁子
Cascadia Code
换成深色主题
现在是深色主题,是我不配吗?【泪流满面】
用久了,想换个字体新鲜新鲜,哈哈哈哈哈哈,我好像没有下载这个字体…,哈哈哈哈,好尴尬…
好嘞,我去试试
感谢大佬!





