目标
Unreal.js插件让UE拥有使用Javascript的能力。
本篇目标是学习安装这个插件,并做些最简单的基础尝试。
(也参考了视频教程:Getting Started with Unreal JS - YouTube)
(更多的脚本范例可以参考https://github.com/ncsoft/Unreal.js/tree/master/Examples/Content/Scripts)
安装
从 https://github.com/ncsoft/Unreal.js-core 下载对应UE版本的插件,然后放入项目 Plugins 目录中,插件文件夹命名为 UnrealJS
然后,点击 install-v8-libs.bat 开始下载chromeV8引擎的库
下载完成后,就可以看到插件目录中有V8引擎的库了:
然后,运行工程,触发插件的编译即可。
尝试1:基础
下面进行一个最简单的尝试:
首先建立一个测试的脚本文件 test1.js,其内容只是创建一个新Actor:
let actor = new StaticMeshActor(GWorld,{X:100,Z:100},{Yaw:180})
actor.SetActorLabel("TestYakSue")
将其放在项目工程路径的 \Content\Scripts 下:
接着,在场景中新建一个空Actor,并添加一个 Javascript 组件:
在Javascript组件上指定脚本文件为 test1.js :
最后,点击运行,就能在场景中看到脚本创建了一个新Actor:
尝试2:定义新的类型
将测试脚本改为如下,其内容是创建一个新的名为 YakSueActor 的Actor类型,并声明一些属性,最后创建一个此类型的Actor:
(需要注意,声明属性后的注释并非是普通的注释,而是指明了属性的类型和说明符)
class YakSueActor extends Actor
{
// declare UPROPERTY's here
// ; this.XXXXX/*[attribute+]+type*/;
properties() {
this.Hello/*Replicated+EditAnywhere+int*/;
this.World/*Replicated+EditAnywhere+Actor*/;
this.Position/*EditAnywhere+Vector[]*/;
this.Some/*EditAnywhere+DistanceDatum*/;
}
}
let YakSueActor_C = require('uclass')()(global,YakSueActor);
let actor = new YakSueActor_C(GWorld)
运行后,便会新创建Actor,可以看到其拥有所定义的一些属性。