wangyhzzz / puerts

Write your game with TypeScript in UE or Unity. Puerts can be pronounced as pu-erh TS(普洱TS)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

license unreal unity PRs Welcome CI

What?

in English

puerts is a TypeScript programming solution within game engines.

  • provides a JavaScript Runtime

  • allows TypeScript to access the host engine(module-binding on the JavaScript level and generating TypeScript declarations)

说中文

puerts是游戏引擎下的TypeScript编程解决方案

  • 提供了一个JavaScript运行时

  • 提供通过TypeScript访问宿主引擎的能力(JavaScript层面的绑定以及TypeScript声明生成)

Why?

in English

  • Facililates game building processes by combining JavaScript packages and toolchains with the rendering power of professional game engines

  • In contrast to lua script, TypeScript supports static type checking, which significantly improves code robustness and maintainability.

  • High efficiency: supports reflection binding throughout the platform (engine) - no extra steps (code generation) needed for development.

  • High performance:supports static binding throughout the platform (engine) - takes care of complex scenes

说中文

  • JavaScript生态有众多的库和工具链,结合专业商业引擎的渲染能力,快速打造游戏

  • 相比游戏领域常用的lua脚本,TypeScript的静态类型检查有助于编写更健壮,可维护性更好的程序

  • 高效:全引擎,全平台支持反射Binding,无需额外(生成代码)步骤即可开发

  • 高性能:全引擎,全平台支持静态Binding,兼顾了高性能的场景


How to Install | 最新版本安装

Changelog

Known issues | 已知问题与解决办法


Code Sample | 编程样例

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());

Manual | 使用文档

Unreal

Unity

Sample Projects | 示例项目

Unreal

Unity

FAQ | 常见问题


Avaliable on these Engine | 引擎

  • unreal engine 4.22 ~ latest

  • unity 5 ~ latest

Available on these Platform | 平台

  • iOS,Android,Windows,Macos

  • 任意.net环境 | Any .net project

Ask for help | 技术支持

Github Discussion

QQ群:942696334

UE4专属群:689643903

开发博客

知乎专栏

About

Write your game with TypeScript in UE or Unity. Puerts can be pronounced as pu-erh TS(普洱TS)

License:Other


Languages

Language:C++ 55.8%Language:C# 18.4%Language:JavaScript 12.1%Language:TypeScript 7.1%Language:CMake 5.5%Language:C 0.5%Language:Objective-C 0.4%Language:Shell 0.1%Language:Objective-C++ 0.1%Language:Batchfile 0.1%