puerts 是游戏引擎下的 TypeScript 编程解决方案
-
提供了一个 JavaScript 运行时
-
提供通过 TypeScript 访问宿主引擎的能力(JavaScript 层面的绑定以及 TypeScript 声明生成)
特性
-
JavaScript 生态有众多的库和工具链,结合专业商业引擎的渲染能力,快速打造游戏
-
相比游戏领域常用的 lua 脚本,TypeScript 的静态类型检查有助于编写更健壮,可维护性更好的程序
-
高效:全引擎,全平台支持反射 Binding,无需额外(生成代码)步骤即可开发
-
高性能:全引擎,全平台支持静态 Binding,兼顾了高性能的场景
安装
-
git clone https://github.com/Tencent/puerts.git
-
拷贝插件到您项目
-
unreal engine
- 拷贝puerts/unreal下的Puerts目录到您项目的Plugins目录下,可以参考unreal demo
-
unity
-
拷贝puerts/unity/Assets下的所有内容到您项目的Assets目录下,可以参考unity demo
-
Plugins要单独下载releases,或者自行编译
-
-
编程样例
Unity
import {UnityEngine} from 'csharp' UnityEngine.Debug.Log('hello world'); let gameObject = new UnityEngine.GameObject("testobject"); console.log(gameObject.name); gameObject.transform.position = new UnityEngine.Vector3(1, 2, 3);
Unreal
import * as UE from 'ue' import {argv} from 'puerts'; let world = argv.getByName("World") as UE.World; let actor = world.SpawnActor(UE.MainActor.StaticClass(), undefined, UE.ESpawnActorCollisionHandlingMethod.Undefined, undefined, undefined) as UE.MainActor; console.log(actor.GetName()); console.log(actor.K2_GetActorLocation().ToString());
调试
常见问题
使用文档
支持的引擎,平台
引擎
-
unreal engine 4.22 ~ 最新版本
-
unity 5 ~ 最新版本
平台
-
iOS,Android,Windows,Macos
-
任意.net环境
详细信息
示例
Unreal自动绑定模式
- FPS demo : 以一个FPS游戏例子演示如何使用Puerts的自动绑定模式
Unreal自创建虚拟机模式
-
QuickStart.ts : 演示TypeScript和UE4引擎互相调用
-
NewContainer.ts : 演示容器的创建
-
AsyncTest.ts : 将异步加载蓝图,Delay封装成async/await
-
UsingWidget.ts : UI加载,绑定事件,获取数据的演示
Unity
-
01_JsCallCs : js调用c#
-
02_Require : 加载js文件
-
03_Callback : 回调基本演示
-
04_JsBehaviour : 用js模拟MonoBehaviour
-
05_Typescript : 包含了大部分TypeScript和C#互相调用的演示
-
06_UIEvent :UI事件的演示