《快闪编辑器》功能: 自定义生成拖拽变量与组件绑定规则

- 功能一览

- 使用配置

将需要绑定到脚本的node.name修改如下
屏幕快照 2021-06-24 下午4.42.20

1.假设node.name是: “@-Sprite-cocos”
2.@ 代表是生成规则的头部
3.Sprite 代表需要绑定到脚本组件名
4.cocos 代表绑定到脚本的变量名

最终生成代码块到代码:

	@property({ type: cc.Sprite, displayName:'' })
	cocos: cc.Sprite = null;

- 应用配置

配置完成后点击菜单应用配置或按下 Ctrl +Shift + E 使用
屏幕快照 2021-06-24 下午4.52.12

- 自定义生成规则

node.name “@-Sprite-cocos” 的解析规则可以按需求自定义
1.通过设置菜单打开生成配置规则文件

2.自定义解析规则


	/**
	 * 第1阶段
	 * @description 生成自定义绑定规则,根据 node.name 解析组件的绑定规则 ( Alt+Shift+C 时才调用这里 )
	 * @param {cc.Node} node - 场景上的 node
	 * @returns {Array} 返回生成 成员变量规则 = {symbolName:'',widgetType:'',nodeUuid:'',args:['@','Sprite','name']}
	 */
	 getNodeWidgetRule(node){

		// 1. 通过名字解析规则, name = '@-Sprite-name'
		let name = node.name;
		// splitSymbol = ['@','Sprite','name']
		let splitSymbol = name.split('-')

		// 2.解析头缀是否正确 @
		if(splitSymbol.length < 3 || splitSymbol[0] != '@'){
			return;
		}

		// 3.解析变量名 symbolName = 'name'
		let symbolName = splitSymbol[2];

		// 4.解析组件类型 widgetType = 'Sprite'
		let widgetType = splitSymbol[1];
		if(cc[widgetType]){
			widgetType = 'cc.'+widgetType;
		}
		
		// 5.获得组件, comp as cc.Sprite
		let comp = widgetType == 'cc.Node' ? node : node.getComponent(widgetType);
		if(!comp){
			// Editor.log("找不到组件: ",name,widgetType)
			return;
		}
		
		/* 6.返回生成 成员变量规则
		 * 使用示例:
		 * @property({ type: widgetType, displayName:'' })
		 * symbolName: widgetType = null;
		 */
		return {
			// 变量名
			symbolName:symbolName,
			// 组件类型名字
			widgetType:widgetType,
			// 组件所在节点的uuid
			nodeUuid:node.uuid,
			// 记录解析配置信息, 在生成代码阶段可以做更多操作,比如生成按钮绑定文本块之类的
			args:splitSymbol,
		}
	},

3.修改完后重启Creator生效
4.如果修改完后想恢复默认配置只需删除该配置文件,重启Creator后会自动拷贝配置副本文件

1赞