12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * 新建脚本规则
- * 修改重启Creator后生效
- */
- let path = require("path")
- module.exports = {
- /**
- * 1.获得新建脚本保存路径
- * @param {string} templePath - 模板文件路径 c://xxx/xxx/define.js
- * @param {string} sceneUrl - 场景或预制节点路径 'db://assets/scene/gameScene.fire' or 'db://assets/panel/login.prefab'
- * @param {string} currNodeName - 当前选中的 node.name
- * @returns - 返回新建脚本保存路径
- */
- getSavePath(templePath,sceneUrl,currNodeName){
- // 在scene.fire文件同级目录下保存脚本
- let saveUrl = path.dirname(sceneUrl) + '/' + 'scripts/' + currNodeName + path.extname(templePath)
- // saveUrl = 'db://assets/scene/scripts/node-name.js'
- // db://assets/ 为项目根目录
- return saveUrl;
- },
- /**
- * 2.获得新建脚本保存内容
- * @param {string} originText - 脚本代码内容
- * @param {string} saveUrl - 保存路径
- * @param {cc.Node} bindNode - 当前脚本绑定的 node
- * @returns - 返回脚本内容用于
- */
- getSaveText(originText,saveUrl,bindNode){
- let findObj = originText.match(/(\s+?class\s+?)([a-zA-Z_$][\w]*)/);
- if(findObj){
- // 替换类名,删除特殊字符
- let className = bindNode.name.replace(/(\W|\d|_)/g, '')
- // 头部大写
- className = className[0].toUpperCase() + className.substr(1)
- let startPos = findObj.index+findObj[1].length;
- let endPos = findObj.index+findObj[0].length;
- originText = originText.substr(0,startPos)+className+originText.substr(endPos)
- }
- return originText;
- },
- /**
- * 3.创建完成回调
- * @param {string} saveUrl - 保存路径
- * @param {string} originText - 脚本代码内容
- * @param {cc.Node} bindNode - 当前脚本绑定的 node
- */
- onComplete(saveUrl,originText,bindNode,jsFileName){
- // 获得已绑定node的组件
- // let comp = bindNode.getComponent(jsFileName);
- // 此阶段可对脚本成员变量进行赋值绑定其它组件关系
- // console.log(comp);
- },
- };
|