【UE5】将蓝图实现转换为Unlua实现的方法

前提

下载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里的一个库。

猜你喜欢

转载自blog.csdn.net/Alexander_420/article/details/129159313