脚本系统
概述
软件提供了Typescript和Javascript脚本语言支持,支持编辑整个项目的代码和在事件指令等地方插入脚本代码。同时也支持使用VSCode编写
软件提供了Typescript和Javascript脚本语言支持,支持编辑整个项目的代码和在事件指令等地方插入脚本代码。
同时也支持使用VSCode编写
关于TypeScript
TypeScript可以看作是JavaScript的升级版,它基本上支持了JavaScript的语法并且增加了一些功能,使之利于开发中大型项目。
在GC内编写TypeScript后将在运行时自动编译成JavaScript,并根据库依赖关系、继承关系等自动排序,无需安装额外的配置。
- 增加了静态类型、类、模块、接口和类型注解,利于代码提示,不容易出现拼写导致的低级错误
- 为函数支持了默认参数值的功能
- 数据要求带有明确的类型,如果明显不兼容则会报红提示
- 引入了模块的概念,可以把声明、数据、函数和类封装在模块中
- 提供API文件,导入js后再添加.d.ts或者GC专用的.api文件即可使用代码提示
代码编辑器
使用F11呼出代码编辑器,允许编辑整个项目的代码。
报错会输出在控制台中,双击即可锁定到报错行。
特性
- 快速编译:仅编译修改过的TS文件,通常情况下是快速且正确的,
- 完整编译:编译所有TS文件,一般更新了Git/Svn后需要完整编译。
- 库项目:支持附加依赖库,比如中大型项目可能会有几十个库,
- 自动排序:按照库依赖顺序排列,而每个库内部按照优先js,再ts(TS会根据类继承关系自动排序)
常用快捷键参考
- F9:快速编译
- F10: 完整编译
- CTRL+R:查找文件
- CTRL+SHIFT+F:查找代码
- ALT+LEFT 切换到上一个跳转前的代码
- ALT+RIGHT 切换到下一个跳转的代码
- CTRL+SHIFT+D 函数变量注释
- SHIFT+ALT+F 格式化代码
- CTRL+鼠标左键 跳转到代码定义
- CTRL+TAB 切换选择文件
- CTRL+G 跳转到行
- F1 打开其他快捷键列表
- ALT+/ 代码补齐
开发者工具
F12可以打开开发者工具,支持断点(代码中也可以输入debugger来增加断点,F10=不观测函数内的步进 F11=可观测函数内的步进 F8=跳过)。
系统生成代码
部分系统会自动生成一些代码,比如界面、场景对象原型、数据结构等会自动生成相关的代码。
一部分代码是以文件的形式生成:如项目Game/system文件夹下的SceneObjectModels.ts和UIRuntime,另一部分生成在内存中使用。
生成的代码可以直接调用以及对代码提示会很友好。
比如部分模板中的系统设置界面,绑定了名为GUI_Setting的用户自定义类。
在该类的构造函数中可以直接访问和操作标签组件(typeTab),由于系统自动生成了相关代码,所以代码补全和代码提示等也有,会非常方便。
事件中插入的代码
在编辑器中的事件页编写完毕脚本后会编译该脚本,生成对应的JS执行文件。
游戏运行时单机版事件的客户端脚本以及网络版事件的服务端脚本会预编译,所以在执行中效率和正常代码一致,
并且在事件中的脚本可以直接使用事件调用相关的变量(网络版的客户端除外):
Script.ts
commandPage:CommandPage; // 当前的事件页
cmd:Command; // 当前的命令,即这个脚本
trigger:CommandTrigger; // 当前的触发器(触发线)
triggerPlayer:Player; // 触发者玩家(如有)
编辑器预览用的代码
在编辑器一些地方可以编写代码以便用于编写在编辑器实时预览的自定义效果。