生成FairyGUI代码(TypeScript)

| 发布     | 分类 tool  | 标签 tool 



本地: ihaiu.ExportFairyGUICodeDemo.zip

Github: https://github.com/ihaiucom/ihaiu.ExportFairyGUICode



如果安装过net core, 可以跳过该步骤

下载地址:https://www.microsoft.com/net/download/windows

根据自己电脑情况选择对应版本即可, 我这里安装的这个: https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.300-windows-x64-installer



双击: FairyGUI/Tools/生成FGUI代码.bat

可以看到生成了目录



在Tools目录下可以看到两个文件夹

ExportFairyGUICode: 负责生成FGUI 代码
Copy: 负责将生成的文件拷贝到项目目录


dotnet ./ExportFairyGUICode/ExportFairyGUICode.dll --optionSetting=./ExportSetting.json

可以看出他需要指定一个启动配置文件ExportSetting.json, 该文件配置了(xlsx文件目录, 生成输出目录)等,后面我们会详细介绍


dotnet ./Copy/Copy.dll --setting=./CopyClientSetting.json

可以看出他需要指定一个启动配置文件CopyClientSetting.json, 该文件配置了要拷贝的文件,后面我们会详细介绍


dotnet ./ExportFairyGUICode/ExportFairyGUICode.dll --optionSetting=./ExportSetting.json
dotnet ./Copy/Copy.dll --setting=./CopyClientSetting.json

是将Export.batCopyClient.bat合并, 变成一键生成


字段名 介绍 默认值
autoEnd 运行完,是否自动关闭cmd true
optionSetting 启动参数设置 配置路径 ./optionSetting.json
fairyProject FairyGUI项目目录 ../../
templateDir 生成代码模板 ./ExportFairyGUICode/Template
codePath 代码输出目录 ./FairyGUICode
codeNamespace 代码的命名空间 fgui
codeMemberNamePrefix 代码的成员变量前缀 m_
codeIgnoreNoname 是否忽略nxxx的变量 true
codeIgnorIllegalClassName 是否忽略非法类名的组件 false
codeIgnorNoExported 忽略没设置导出的组件 true
codeExportDepend 导出依赖的组件 true
codeUseOtherPkgType 成员变量类型是否可以用其他包组件的类名 true


{
	// 可覆盖列表
  "enableoverwrites": [
  	{
  		"src":"./FairyGUICode/TS/Generates", 
  		"dst":"./FairyGUICode2/fgui/Generates"
  	}
  ],
  	// 目标目录没有该文件才复制
  "disableoverwrites": [
  	{
      "src":"./FairyGUICode/TS/Extends", 
      "dst":"./FairyGUICode2/fgui/Extends"
    }
  ]
}
enableoverwrites: 可覆盖文件
disableoverwrites: 如果目标文件已存在,将忽略
// 支持文件和目录
src: 源路径
dst: 目标路径



TS/Generates: 和原生的生成代码类似

TS/Extends: 生成对应的扩展类,不会被覆盖,你可以再这里扩展你的逻辑

/////////////////////////////////////
// ihaiu.ExportFairyGUICode生成
// http://blog.ihaiu.com
/////////////////////////////////////

namespace fgui.BlackSkin
{
	export class Button extends ButtonStruct
	{
		// 你可以再这里扩展你的逻辑,不会被覆盖
	}
}
/////////////////////////////////////
// ihaiu.ExportFairyGUICode生成
// http://blog.ihaiu.com
/////////////////////////////////////

namespace fgui.BlackSkin
{
	export class ButtonStruct extends fairygui.GButton
	{
		public m_button : fairygui.Controller;
		public m_grayed : fairygui.Controller;
		public m_title : fairygui.GTextField;

		
		public static URL:string = "uiL://s1uxc7tgjmop0";

		

		public constructor() 
		{
			super();
		}

		protected constructFromXML(xml: any): void 
		{
			super.constructFromXML(xml);
			
			this.m_button = this.getController("button");
			this.m_grayed = this.getController("grayed");

			
			this.m_title = <fairygui.GTextField><any>(this.getChild("title"));
		}
	}
}
上一篇: 导出xlsx配置文件工具(可以转csv json 生成TypeScript)
下一篇: 游戏框架的思考