unity使用xlua进行开发(1.0)

2 篇文章 0 订阅

1.环境配置

xlua下载地址:https://github.com/Tencent/xLua下载压缩包

解压后把文件夹中的Assets文件夹替换到你新建的工程中即可

2.到工程文件夹下创建lua文件

(命名规范你应该知道吧,这样“文件名.lua.txt”)
内容这样写

function awake()
   print("awake")
end
function start()
   print("start")
end
function update()
    print("update")
end
function ondestory()
   print("ondestory")
end

3.新建cube 添加脚本组件“Lua Behivaour”,并把前边建好的lua文件拖进 Lua Script 的位置如下图

在这里插入图片描述

运行
你会发现,控制台在输出lua脚本中对应的指令。是不是感觉这lua文件的方法结构似曾相识,没错,在脚本LuaBehaviour中xlua工具为我们把unity中的一些重要结构函数都经集成好了,两者基本一致。
就是这么简单我们仅仅需要使用lua中点的LuaBehaviour脚本就可以了,现在你已经可以在lua文件中开发你的脚本逻辑了

热更新知识点扩充

1.怎样让cube旋转

在lua文件中的updata函数里添加这句代码

self.transform:Rotate(0,1,0)

如下图
在这里插入图片描述

运行,转了没。
为什么这样写,不懂的就同学需要去看看lua教程了(self相当于c#中的this,就是自己,transform后用了":“相当于c#中的”.",在调用c#提供的方法时需要这样写)

2.获取物体身上的组件并控制它

我们先在场景中新建一个空物体,挂上组件“AudioSource”,随便添加一个音效
如下图
在这里插入图片描述
按顺序执行下面三部
1.填入1
2.填入“audio”
3.拖入gameobject
在这里插入图片描述

lua中的start函数下加上这些代码

local audio_com = audio:GetComponent("AudioSource")
	audio_com:Play()

如图在这里插入图片描述
运行,响了没。

总结:主要介绍了三个知识点

1.使用lua脚本进行开发时怎么关联lua脚本

2.个别标识符和引用符号的使用

luac#
selfthis
:.

3.lua脚本获取场景物体及组件

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用XLua可以在Unity中实现Lua脚本的编写,同时也可以让Lua脚本与C#代码进行交互。 以下是基本的使用步骤: 1. 下载XLua插件并导入到Unity中。 2. 在Unity中创建一个新的Lua文件,编写Lua脚本代码。 3. 在C#代码中使用XLua的API来加载并运行Lua脚本,例如: ``` using XLua; public class LuaManager : MonoBehaviour { private LuaEnv luaEnv; void Awake() { luaEnv = new LuaEnv(); luaEnv.DoString("require 'main'"); // 加载并执行Lua脚本 } void Update() { luaEnv.Tick(); // 更新Lua环境 } void OnDestroy() { luaEnv.Dispose(); // 释放Lua环境 } } ``` 在上面的例子中,`Awake()`方法中创建了一个Lua环境,然后通过`DoString()`方法加载并执行了Lua脚本。`Update()`方法中每帧都调用了`Tick()`方法来更新Lua环境,`OnDestroy()`方法中释放了Lua环境。需要注意的是,在实际的项目中,可能需要更加复杂的逻辑和管理方式来处理Lua脚本的加载和运行。 4. 在Lua脚本中使用XLua提供的API来调用C#代码或者导出Lua模块,例如: ``` -- 导出一个Lua模块 local module = {} module.foo = function() print("Hello from Lua!") end return module -- 调用C#代码 local gameObject = CS.UnityEngine.GameObject("LuaObject") local transform = gameObject.transform transform.position = CS.UnityEngine.Vector3(1, 2, 3) ``` 在上面的例子中,导出了一个名为`module`的Lua模块,并定义了其中的一个函数`foo()`。同时,也调用了C#代码的API来创建了一个新的GameObject,并修改了它的Transform组件的位置。 XLua还提供了其他的功能,例如自定义导出规则、GC优化等。在使用XLua之前,建议先了解一些基本的Lua语法和C#与Lua交互的机制,以便更好地使用XLua

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值