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

【Lua】XLua加载lua文件

第一种方式:通过默认加载器加载XLua文件

1. 在Asset/Resources下建立A.lua.txt文件:

我在此输入了以下内容,方便观察效果:

2. 编写cs脚本:

using UnityEngine;
using XLua;public class XLua_Mono_ByResources : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){LuaEnv env = new LuaEnv();env.DoString("require 'A'");}
}

3. 挂载至场景内的某个物体,先后点击菜单栏的Clear Generate Code和Generate Code:

4. 运行游戏后将在Console下看到:

第二种方式:通过自定义加载器加载Lua文件

1. 假设在Assets/_Scripts/XLua/_LuaScript文件夹下创建文件B.lua:

2. 编写脚本:

using System;
using System.IO;
using UnityEngine;
using XLua;public class XLua_Mono : MonoBehaviour
{private LuaEnv env = null;// Xlua解释器// Start is called before the first frame updatevoid Start(){env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'B'");}private void OnDisable(){try{if (env != null){// 进行一次强制的垃圾回收env.Tick();// 确保在销毁时释放Lua环境env.Dispose();// 防止再次被引用env = null;}Debug.Log("成功释放解释器资源");}catch(Exception ex){Debug .LogError("释放解释器资源时发生错误: " + ex.Message);}}private byte[] MyLoader(ref string fileName){string filePath = Application.dataPath + "/_Scripts/_XLua/_LuaScript/" + fileName + ".lua";if (File.Exists(filePath)){return File.ReadAllBytes(filePath);}else{Debug.LogError("Lua file not found: " + filePath);}return null;}
}

3. 挂载至场景内的某个物体,先后点击菜单栏的Clear Generate Code和Generate Code:

4. 运行游戏将看到:

http://www.dtcms.com/a/326411.html

相关文章:

  • xlsxio全平台(x86、arm32、arm64 )编译、测试,使用编译脚本10分钟快速编译!
  • redis常见的性能问题
  • 游戏盾是什么?
  • Qwen Code CLI在Windows上的安装与环境配置问题解决
  • 金蝶云星辰:赋能企业数据管理
  • 开发指南130-实体类的主键生成策略
  • 达梦数据库慢SQL日志收集和分析
  • 机器学习 TF-IDF提取关键词,从原理到实践的文本特征提取利器​
  • Java 之抽象类和接口
  • 数据结构-数组扩容
  • 2025苹果CMS泛目录 8月最新可用
  • 软件测评中HTTP 安全头的配置与测试规范
  • 鸿蒙开发中所有自定义装饰器的完整案例解析--涵盖 16 个核心装饰器的详细用法和实战场景
  • QT 高分屏不同缩放比例的自适应处理
  • 数据科学与计算实例应用
  • 借助 ChatGPT 快速实现 TinyMCE 段落间距与行间距调节
  • Ansible 面试题 20250811
  • OpenGL中的EBO:高效渲染的秘密武器(绘制四边形)(Unreal Engine、Unity、Godot原理系列)
  • JavaScript中map和forEach的区别详解
  • 动捕设备是什么?全面解析NOKOV度量动捕设备的原理、类型与应用
  • redis(1)-基本概念
  • ROS2不同版本的区别
  • JVM 运行时全景:从类加载到 GC 的底层原理与调优指南
  • JVM运维
  • javaJVM ‘
  • 电子电气架构 --- 软件定义汽车的驱动和挑战
  • C++多态是如何实现
  • # Java制作堆Dump
  • 学习观察和行动:机器人操作中任务-觉察的视图规划
  • 如何解决 JetBrains IntelliJ IDEA 2024.2 和 2025.2 新版本区域选择问题:key is invalid