对属性参数装饰器@property 的建议

很多时候会为node添加脚本, 脚本会定义一些属性并通过 @property 暴露给编辑器进行拖拉赋值,但往往移动调整资源目录、调整各种工作环境时,可能会导致这个属性丢失了,导致运行不正常。

而往往为了追踪这个问题,是很耗时很重复的工作,给开发者带来了低质效。

建议为@property 添加多一种机制,能够让开发者进行非空警告的设置,例如:

export class Foo extends Component {
    @property({type:Node, notnull:true})
    public BarNode: Node;
}

notnull:true 表示开发者期待在运行时,这个BarNode 不能不存在;就如现在 某些挂在单位上的脚本缺失时,都会提示。

你希望这个提示发生在什么时候?项目构建时?场景保存时?预览时?运行时?

看描述,应该是指首次打开工程(全遍历)或者场景、预制体(当前资源)保存时,我觉得这个想法挺好的

2赞

什么时候都行,要看官方的实现情况,只要不是现在这样静悄悄地就行。

附议。。最好加上节点路径。。

2赞

可以参考unity的设计。 当这个变量是不可空类型却没有引用资源,在资源编辑器上报错。最好是能让构建的时候也报错。
例如:
x?: Prefab // 资源引用可以为空
x!: Prefab // 资源引用不能为空

x: Prefab | null // 资源引用可以为空

语言层面支持还不太完善,这块其实很早就想做的,关联的一些需求挺多的。后面如果有机会完善的话是可以做很多类似的底层工作的

1赞