给 Component 增加 onBeforeSave 生命周期回调,在Prefab或者Scene保存前调用。
调用顺序按节点树自顶向下。
举手之劳就可以实现嵌套Prefab,并且还能在编辑器里预览了啊。
@ccclass
@executeInEditMode
class LoadPrefab extends cc.Component {
@property(cc.Prefab) prefab: cc.Prefab = null;
private _generatedNode: cc.Node = null;
onEnable() {
// 在编辑模式显示效果
if (!this.prefab) return;
this._generatedNode = cc.instantiate(this.prefab);
this.node.addChild(this._generatedNode);
}
onDisable() {
if (this._generatedNode)
this._generatedNode.destroy();
}
onBeforeSave() {
// 保存前删掉,以免影响结果
if (this._generatedNode)
this._generatedNode.destroy();
}
}