多看官方代码creator.ts有相关注释,使用方法
1、编辑器里运行脚本代码
protected resetInEditor(): void;
用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
将脚本写在此函数下,会在脚本挂到节点上执行
resetInEditor(){
this.node.addComponent(cc.Label);
}
2、属性get,set时,动态执行编辑器里的代码
@property()
private _lang: any = "";
@property({
type: cc.String,
})
get LangKey() {
return this._lang;
}
set LangKey(value) {
//不想属性被误删可以加
//if (!cc.isValid(value)) {
// return;
//}
this._lang = value;
this.langChange();
}
3、在编辑器添加组件中展示自定义脚本
ts:
/**将Label字体转为加粗RichText */
const { ccclass, property, menu } = cc._decorator;
@ccclass
@menu("扩展/加粗字体")
export default class BoldFont extends cc.Component {
js:
editor: CC_EDITOR && {
executeInEditMode: true,//编辑器里运行脚本代码
disallowMultiple: true,
menu: "扩展/加粗字体",
},
4、代码挂载编辑器/代码刷新时在编辑器运行
resetInEditor() {
//this.start();
}
resetInEditor(){
//this.start();
}
5、编辑器里加载资源
/** 2.4.4
* 加载资源
* @param {*} url 路径,编辑器assets下的目录结构,带后缀名
* @param {*} callback 回调
* LoadTool.loadEditorRes("resources/language/img_EN.png")
*/
loadEditorRes(url, callback) {
var uuid = Editor.assetdb.remote.urlToUuid("db://assets/" + url);
if (uuid) {
cc.assetManager.loadAny(uuid, function (err, asset) {
if (!err) {
if (callback) callback(asset);
}
});
} else {
console.error(url + " not found");
Editor.error(url + " not found");
}
}
5、编辑器里打印信息
Editor.error("not found");