千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  Unity技术干货  >  正文

unity如何接入puerts

来源:千锋教育
发布时间:2022-09-29 10:54:36
分享

  一.前言.

  puerts是游戏弓|擎Q下的TypeScript编程解决方案

  ●提供了一个JavaScript运行时

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

  二.puerts的优势

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

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

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

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

  三.安装教程.

  ●git clone https://github.com/Tencent/ puerts.git

  ●拷贝插件到您项目

  。拷贝puerts/unity/Assets下的所有内容到您项目的Assets目录下,可以参考unity demo

  。Plugins要单独下载releases, 或者自行编译

  。在项目根目录(Assets 上级目录) TsProj文件夹, 存放我们的Ts脚本,建议放到这里,不要放到Assets目录下(因为TsProj下稍

  后会加载大量的依赖包,Unity加载会很慢)。

  四.如何运行demo

  可以随便打开一个demo,或者我们自己随便写一个脚本, 代码如下所示。

1

  我们可以看出语法结构和Xlua框架是相似的,很容易掌握。

  demo虽然是跑起来了,但是我们真实项目肯定不是这么写ts/js代码,所以我们需要使用ts编写真实的游戏逻辑,然后跑起来这些ts代码。

  但是,我们使用unity元法植接跑起来ts代码的,必须把ts编译成js,才能使用v8 1 quickjs去执行这些代码,所以真实的puerts的编程逻辑和LayaAir, Cocos Creator 是一样的编写ts,然后自动编译成bundle.js,等我们运行游戏时,实加载的是bundle.js.

  所以我们使用puerts,准确的说需要我们自己去部署工具链,需要node.js环境,需要配置webpack或者gulp的编译器来实时编译ts代

  码为bundle.js,所以如果你想用puerts,必须先去熟悉js的工作流。

  五.puerts环境配置

  1.安装vscode, node, npm, typescript' 2环境

  ●1.下载node.js安装程序Node.js官网,安装完毕后,使用node -v查看版本

  ●2.npm已经在Node js安装的时候顺带装好了。我们在终端输入npm -v 查看版本,npm是Node.js的包管理 I具(package manager)

  ●3.安装TypeScript到系统环境,终端输入npm install typescript -g安装

  ●4.下载vscode, 并安装Chinese, C#, TS, Unity相关插件

  ●5.使用vscode 打开TsProj目录,打开vscode的终端命令行.

  2.配置ts编译环境

  一般ts/js项目, 都要一个package. json的文件,它是我们项目的依赖包管理文件,我们都知道js的包一般都通过nmp install xxx 命令从npm下载xxx插件,但是如果我们直接执行npm install 命令的话,会自动下载package . json中的依赖项。

  常用依赖项:

  比如编译ts的webpack或者gulp插件,

  比如运行时,js 中常用的protobufjs,flatbuffers 插件。

  webpack适用于我们执行ts编译为js用的插件,把需要的依赖加入到dependencies标签中,然后在vscode的终端输入npm install 拉取依赖即可,拉取成功后,会生成一-个node_ modules的文件夹,里面就是我们拉取的依赖库,可能很大,这个文件夹最好加入到忽略列表中。代码如下所示:

2

  3.编译ts脚本到bundle.js

  加入需要执行的js编译命令到package . json的scripts标签中,包括dev和release命令。

  "dev": "webpack --config webpack. config . dev.js --watch",

  "build": "webpack --config webpack . config. release.js",

  dev:调试打包,编译ts到bundle. js的develop开发版本,bundle. js文件较大,且有.map映射文件,可调试,看日志堆栈。

  release :发布打包,编译ts到bundle.js的release发布版本,bundle.js 文件较小,不可调试,日志无堆栈。

  然后我们就可以在vscode的命令行执行nmp run dev 和npm run build 命令,执行编译了。

  其中,我们还需要webpack. config. dev. js和config webpack. config.release.js这两个文件,是基于webpack的自动编译命令脚本,可以参考我的webpack .config devjs。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • fps低怎么办?什么原因导致的? 低帧率(FPS)通常是指在实时图像渲染或视频播放过程中,每秒显示的帧数较低,导致画面不流畅或卡顿。下面是一些可能导致低帧率的原因和相应的解决方法:1.硬件性能不足:如果计算机或设备的处理能力不够强大,
  • fps低了怎么调高 要提高FPS(FramesPerSecond,每秒帧数)的性能,可以尝试以下方法:1.优化图形设置:降低图形质量和特效,如分辨率、纹理质量、阴影等。这会减少图形渲染的工作量,提高性能。2.关闭后台进程
  • 反射的实现原理? Load(“程序集”)加载程序集,返回类型是一个Assembly,得到程序集中所有类的名称,foreach (Type type in assembly.Type type = assembly.创建此类型实例,MethodInfo mInfo = type.
  • unity如何接入puerts webpack适用于我们执行ts编译为js用的插件,把需要的依赖加入到dependencies标签中,然后在vscode的终端输入npm install 拉取依赖即可,拉取成功后,会生成一-个node_ modules的文件夹,里面就是我们拉取的依赖库,可能很大,这个文件夹最好加入到忽略列表中。代码如下所示:
  • xlua-framework之UI框架 我们前面说过xlua-framework这个框架,是一个纯lua的一个框架,也就是说我们所有的逻辑都可以在lua中实现,只有资源模块和网络模块是c#原生写的,但是也在lua中给我们包装的工具类,让我们更方便的使用。在框架的纯lua代码中,不得不说,ui框架是我最喜欢的,一套基于mvc的一套ui框架。
  • xlua-framework之网络框架 一般我们说到网络框架,主要是指Socket网络框架,如果是Http的话,我们没有必要单独介绍了,简单用可以直接使用WWW或者UnityWebRequest,如果稍微复杂的使用,可以使用RestSharp库。所以我们本章主要讨论的是xlua-framework框架是如何实现socket网络框架的。