前提
下载Unlua
- 我们需要下载Unlua,并且将Unlua的插件部分复制到项目的插件文件下
- 下载地址
实现Unlua的智能提示
- 在文件中,智能提示相关的文档在UnLua/Docs/CN/IntelliSense.md
(1) 打开UnLua工具栏,点击导出智能提示,会在{UE工程}/Plugins/UnLua/Intermediate下生成IntelliSense的目录
(2) 可以将下载文件中的workspace复制过来,直接用VsCode打开工作区
- 将这个工作区复制到项目就可以打开两个文件,Content/Scripts和插件下的 IntelliSense, 后者就是智能提示的文件
利用好智能提示
创建Unlua文件
- 首先确保你把需要写lua的蓝图进行unlua绑定,同时创建了对应的文件在Content/Script文件夹里的对应路径下
更新智能提示文件
- 如果你对蓝图有更改,如创建变量或者新的Event,最好再次更新智能提示文件
使用VsCode联想功能辅助
- 推荐使用vscode商店里面的LuaBooster
智能提示联想
- 这时候就可以在创建的lua文件里面输入self:,检查是否有智能提示了
self.Mesh:SetCollisionEnabled(UE.ECollisionEnabled.NoCollision)
- 例子↑:UE. 是很常用的unlua方法,但是智能提示的加载会比较慢
结合搜索方法进行编程
- 例子↑:在Unlua去实现SpawnSystemAttached
- 将鼠标悬停,就会看到这个函数属于NiagaraFunctionLibrary这个库
- 回到VsCode进行文件搜索,就能找到对应库下的对应函数
---@param SystemTemplate UNiagaraSystem
---@param AttachToComponent USceneComponent
---@param AttachPointName string
---@param Location FVector
---@param Rotation FRotator
---@param LocationType integer
---@param bAutoDestroy boolean
---@param bAutoActivate boolean @[opt]
---@param PoolingMethod ENCPoolMethod @[opt]
---@param bPreCullCheck boolean @[opt]
---@return UNiagaraComponent
function UNiagaraFunctionLibrary.SpawnSystemAttached(SystemTemplate, AttachToComponent, AttachPointName, Location, Rotation, LocationType, bAutoDestroy, bAutoActivate, PoolingMethod, bPreCullCheck) end
- 在文件中,对这个函数的每个参数都有明确的解释
调用函数
local SystemAttach = UE.UNiagaraFunctionLibrary.SpawnSystemAttached(self.SystemAttachedDissolve, self.Mesh, nil, UE.FVector(0,0,0), UE.FRotator(0,0,0), 0, true, true, 0, true)
- 这是一个非常长的句子,但并不复杂,只需要根据参数将需要的值填上就行了
- 使用UE里的各种Library的时候,都需要在前面写上UE.,表示这是UE里的一个库。