xLua_001 Lua 文件加载

xLua下载

1、HelloWrold 代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;   // 引入XLua命名空间 public class Helloworld01 : MonoBehaviour
{//声明LuaEnv对象  private LuaEnv luaenv;void Start(){//实例化LuaEnv对象luaenv = new LuaEnv();//执行lua代码 外面的双引号里面的是lua代码luaenv.DoString("print('Hello world')");}private void OnDestroy(){//释放LuaEnv对象luaenv.Dispose();}
}

输出结果:

2、环境管理规范

一个unity 项目最好只有一个 LuaEnv 实例

输出结果:

3、建立单独的Lua文件

单独的lua文件:
把lua程序放到resources文件夹里面,来加载这个程序,获取里面的字符串,把字符串当做一个参数放在C#文件中执行 

  • resources文件中

 引用脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;   // 引入XLua命名空间 public class Helloworld02 : MonoBehaviour
{void Start(){   //文件名:helloworld.lua.txtTextAsset ta = Resources.Load<TextAsset>("helloworld.lua");     LuaEnv env = new LuaEnv();env.DoString(ta.text);   // env.DoString(ta.ToString());env.Dispose();}
}

输出结果:

4、使用系统内置加载Lua的方式

5、自定义加载器Loader

1) 加载一个不存在的lua文件(利用系统内置的加载方式,自定义Loader为空)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'XXXXXX'");env.Dispose();    }private byte[] MyLoader(ref string filePath){return null;}}

输出结果:

2) 加载helloworld  lua文件(利用系统内置的加载方式,自定义Loader为空)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'helloworld'");env.Dispose();    }private byte[] MyLoader(ref string filePath){//输出文件名  helloworldprint(filePath);//自定义loader为空return null;}}

输出结果:

 输出顺序:自定义Loader ->>  系统内置的Loader

3) 加载  自定义Loader (首先执行自定义Loader程序   找到字节数组,执行自定义Loader,系统内置的Loader程序,不支执行)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'helloworld'");env.Dispose();    }private byte[] MyLoader(ref string filePath){print(filePath);string s = "print (123)";//字符串转为字节数组//通过System.Text.Encoding.UTF8转为字节数组  //通过GetBytes() 来获取数组return System.Text.Encoding.UTF8.GetBytes(s);}}

输出结果:

6、通过 路径 加载Lua文件

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'test007'");env.Dispose();    }private byte[] MyLoader(ref string filePath){print(filePath);//return System.Text.Encoding.UTF8.GetBytes(s);print(Application.streamingAssetsPath);//路径构建    拼接完整路径<Project>/Assets/StreamingAssets/test007.lua.textstring absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.text";//File.ReadAllText(absPath):文件读取(读取指定路径的文本文件内容)//字节转换return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天看一篇漏洞报告

前言&#xff1a; 内容来源于乌云漏洞 今日思考xss漏洞&#xff0c; 今天看到一篇文章&#xff0c;里面详细说了xss的绕过技巧&#xff0c;虽然时间久了&#xff0c;没有去尝试&#xff0c;待会有时间去测试一下 以下是整理后的文章&#xff0c;原文在下面 文章链接&#…

【sql靶场】第18-22关-htpp头部注入保姆级教程

目录 【sql靶场】第18-22关-htpp头部注入保姆级教程 1.回顾知识 1.http头部 2.报错注入 2.第十八关 1.尝试 2.爆出数据库名 3.爆出表名 4.爆出字段 5.爆出账号密码 3.第十九关 4.第二十关 5.第二十一关 6.第二十二关 【sql靶场】第18-22关-htpp头部注入保姆级教程…

Python----计算机视觉处理(Opencv:形态学变换)

一、形态学变化 形态学变换&#xff08;Morphological Transformations&#xff09;是一种基于形状的图像处理技术&#xff0c;主要处理的对象为二值化图像。 形态学变换有两个输入和一个输出&#xff1a;输入为原始图像和核&#xff08;即结构化元素&#xff09;&#xff0c;输…

对于memset(b, 1, sizeof b)赋值为16843009情况

memset(b, 1, sizeof b); 的行为看起来可能不符合预期&#xff0c;这是因为 memset 的工作方式和数据类型之间的差异导致的。下面详细解释这个问题。 1. memset 的作用 memset 是 C/C 中的一个标准库函数&#xff0c;用于将一段内存区域的值设置为指定的字节值。它的函数原型如…

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…

C++模板进阶

目录 非类型模板参数 类模板的特化 分类 函数模板的特化 模板分离编译 问题 解决方法 1&#xff09;不对模板定义进行分离或对模板进行特例化&#xff1b; 2&#xff09;将声明和定义放在同一个文件 总结 关于C模板的使用在《C类和对象》中有介绍&#xff0c;本篇博客…

Ubuntu togo系统读写性能与原生系统测试

我前面把一个Ubuntu环境拷贝到了一个10Gbps的硬盘盒制作了一个Ubuntu togo的系统&#xff0c;帖子在这里&#xff0c;这篇文章主要用于测试使用Ubuntu togo的系统和原生系统的性能差异。 以下是测试Ubuntu togo系统与原系统性能差异的具体方案&#xff0c;结合移动硬盘特性及参…

【css酷炫效果】实现鱼群游动动态效果

【css酷炫效果】实现小鱼游动动态效果 缘创作背景css代码创建div容器引入jquery引入鱼群js完整代码效果图成品资源下载链接:点击下载 缘 在开发系统功能的时候,无意间看到了小鱼游动特效,感觉很有意思,就在网上找了相关教程,分享给大家。 创作背景 刚看到csdn出活动了…

停车场停车位数据集,标注停车位上是否有车,平均正确识别率99.5%,支持yolov5-11, coco json,darknet,xml格式标注

停车场停车位数据集&#xff0c;标注停车位上是否有车&#xff0c;平均正确识别率98.0&#xff05;&#xff0c;支持yolov5-11&#xff0c; coco json&#xff0c;darknet&#xff0c;xml格式标注 数据集-识别停车场所有车辆的数据集 数据集分割 一共184张图片 训练组 89&am…

结合基于标签置信度的特征选择方法用于部分多标签学习-简介版

假设 部分多标签学习&#xff08;PML&#xff09;假设&#xff1a;假设样本的标签集合中存在伪正标签&#xff0c;即某些标签可能是错误的。目标是从候选标签集中识别出真实标签。特征与标签的关系假设&#xff1a;假设不同的标签对应的特征子空间可能是不同的&#xff0c;而不…

Lora微LLAMA模型实战

引言 本文介绍如何复现Alpaca-lora&#xff0c;即基于alpaca数据集用lora方法微调Llama模型。 环境准备 实验环境用的是lanyun&#xff0c;新用户点击注册可以送算力。 下载huggingface上的模型是一个令人头疼的问题&#xff0c;但在lanyun上可以通过在终端运行source /etc…

Maven常见问题汇总

Maven刷新,本地仓库无法更新 现象 This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced原因 因为上一次尝试下载&#xff0c;发现对应的仓库没有这个maven配置…

什么是站群服务器?站群服务器应该怎么选?

站群服务器是专门用于托管和管理多个网站的服务器。通常用于SEO优化、内容分发、广告推广等场景&#xff0c;用户可以通过一个服务器管理多个站点&#xff0c;提升效率并降低成本。选择站群服务器时&#xff0c;需根据业务需求、性能要求、IP资源等因素进行综合考虑。 什么是站…

分享一个项目中遇到的一个算法题

需求背景&#xff1a; 需求是用户要创建一个任务计划在未来执行&#xff0c;要求在创建任务计划的时候判断选择的时间是否符合要求&#xff0c;否则不允许创建&#xff0c;创建的任务类型有两种&#xff0c;一种是单次&#xff0c;任务只执行一次&#xff1b;另一种是周期&…

【LInux进程六】命令行参数和环境变量

【LInux进程六】命令行参数和环境变量 1.main函数的两个参数2.利用main函数实现一个简单的计算器3.环境变量之一&#xff1a;PATH4.修改PATH5.在命令行解释器bash中查看所有环境变量6.用自己写的程序查看环境变量7.main函数的第三个参数8.本地的环境变量和环境变量9.环境变量具…

时间轴版本-2.0

文章简述 这是本人自己封装的时间轴2.0版本的代码&#xff0c;用到了TypeScriptJavaScript 这篇文章只有代码和具体的使用方式&#xff0c;如果想看具体的讲解可以参考本人写的时间轴1.0版本的&#xff0c;在1.0版本中可能计算时间线的逻辑略有不同&#xff0c;但是大致的计算…

大语言模型的压缩技术

尽管人们对越来越大的语言模型一直很感兴趣&#xff0c;但MistralAI 向我们表明&#xff0c;规模只是相对而言的&#xff0c;而对边缘计算日益增长的兴趣促使我们使用小型语言获得不错的结果。压缩技术提供了一种替代方法。在本文中&#xff0c;我将解释这些技术&#xff0c;并…

大华HTTP协议在智联视频超融合平台中的接入方法

一. 大华HTTP协议介绍 大华HTTP协议是大华股份&#xff08;Dahua Technology&#xff09;为其安防监控设备开发的一套基于HTTP/HTTPS的通信协议&#xff0c;主要用于设备与客户端&#xff08;如PC、手机、服务器&#xff09;之间的数据交互。该协议支持设备管理、视频流获取、…

Linux内核实时机制28 - RT调度器11 - RT 组调度

Linux内核实时机制28 - RT调度器11 - RT 组调度 相关数据结构 内核中通过static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)函数来判断实时任务运行时间是否超出带宽限制,判断这个运行队列rt_rq的运行时间是否超过了额定的运行时间。而“运行时间”和“额定时间”都…

java,poi,提取ppt文件中的文字内容

注意&#xff0c;不涉及图片处理。 先上pom依赖&#xff1a; <!-- 处理PPTX文件 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><!--…