当前位置: 首页 > news >正文

Unity中使用Xlua调用lua相关

//引用命名空间
using XLua;
public class L1 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//Lua解析器 让我们在Unity中使用luaLuaEnv env = new LuaEnv();//执行env.DoString("print('OK')");//执行一个Lua脚本 在resource文件夹下env.DoString("require('Main')");//垃圾回收env.Tick();//销毁Lua解析器env.Dispose();}
}

这样只能读取Resources文件夹下的脚本,但是我们做热更新需要从AB包中读取,所以需要自定义加载路径

public class L2 : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){LuaEnv env = new LuaEnv();//XLua提供的路径重定向方法//自定义加载Lua文件的规则env.AddLoader(MyLoader);env.DoString("require('Main')");}/// <summary>/// /// </summary>/// <param name="filePath">Lua脚本文件名</param>/// <returns></returns>private byte[] MyLoader(ref string filePath){//在这里自定义加载逻辑string path = Application.dataPath + "/Lua/" + filePath + ".lua";//得到路径后加载文件//引用命名空间if (File.Exists(path)){return File.ReadAllBytes(path);}else{print("MyLoader加载失败,文件名为"+path);return null;}}
}

require寻找文件的逻辑是,先找AddLoader中自定义的路径(可以有多个路径)中有没有相应文件,再去Resources下查找

http://www.lryc.cn/news/190529.html

相关文章:

  • 基于http的protobuf服务实现
  • 基于uniapp的商城外卖小程序
  • 【CSS】Tailwind CSS
  • leetcode-电话号码组合(C CODE)
  • Leetcode92. 反转链表 II
  • 【算法作业记录】
  • 回归预测、分类预测、时间序列预测 都有什么区别?
  • 关于网络协议的若干问题(三)
  • 办公室人人在用的iTab桌面真的好用吗?
  • 循环中的else语句
  • 三.镜头知识之FOV
  • 分布式事务入门
  • Ubuntu的中文乱码问题
  • [GXYCTF2019]Ping Ping Ping - RCE(空格、关键字绕过[3种方式])
  • ceph 分布式存储与部署
  • Go 结构体深度探索:从基础到应用
  • 分布式系统开发技术中的CAP定理原理
  • Mysql 报错 You can‘t specify target table ‘表名‘ for update in FROM clause
  • 【DevOps】DevOps—基本概念
  • 发行版兴趣小组季度动态:Anolis OS 支持大热 AI 软件栈,引入社区合作安全修复流程
  • android app开发环境搭建
  • oracle入门笔记一
  • linux下安装ffmpeg的详细教程、ffmpeg is not installed
  • ctfshow-ssti
  • 【ES6 03】变量解构赋值
  • RustDay03——记录刷完Rust100题
  • 微软10月补丁 | 修复103个漏洞,包括2个零日漏洞,13个严重漏洞
  • ubuntu编写makefile编译c++程序
  • 详解COCO数据格式的json文件内容
  • 2023.10.12