stonstad 发表于 2021-8-15 10:37

Xlua 踩坑笔记(一 ) Xlua的创建和读取

本人原来是做VR的,发现时间长了是真的坑人,VR太简单了,离职后找工作太难了,好多都不会,离职后才有时间研究这个,抽时间把坑位介绍给初学lua的朋友
具体的Xlua下载大家可以去Git开源上面下载,相信有编程基础的同学,这点事还不大具体只讲究Xlua的使用
大家下载Xlua包导入工程后可以在XLua --Examples文件夹下面看到演示案例,还可以在XLua--Doc文件夹下面有文档介绍
话不多说:先来测试下面包含了unity读取Lua文件 和Lua文件中保持和unity一样的生命周期
如果运行不起来请大家把注释全部去掉 包含空格
IDE的话NotePad++   Visual Studio Code 也可以。个人使用后者
大家在学习的时候可以搭配LUA菜鸟教程去看语法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using XLua;                            //引入XLua
using UnityEngine.UI;
public class CreatBuldes : MonoBehaviour
{
   //官方介绍多中lua解析方式再次只介绍一种
   LuaEnv lua;                  //声明Lua
    LuaFunction update;//创建Lua方法   LuaFunction为固定写法用来接收Lua文件中的方法
   LuaFunction start;
   LuaFunction onenable;
   // Start is called before the first frame update
   void Start()
   {
         lua = new LuaEnv();               //创建Lua虚拟机
         lua.DoString("require'Ready'");   //读取Lua文件
/在此多说两句   Ready文本是以.lua结尾格式为Txt,并且在Resources文件下面缺一不可
//因为Lua出错对不熟悉的同学来说特别难找   所以在一开始写的时候注意细节


//获取lua文件中a,b,c 三个变量 分别为Int,String,Bool格式
      int a = lua.Global.Get<int>("a");
         string b = lua.Global.Get<string>("b");
         bool c = lua.Global.Get<bool>("c");
         print(a);
         print(b);
         print(c);
//接受Lua文件中的方法
         update = lua.Global.Get<LuaFunction>("Update");
         start = lua.Global.Get<LuaFunction>("start");
//运行该方法
         start.Call();

   }
    // Update is called once per frame
   void Update()
   {
//同理Start
         update.Call();
   }
}
可以接受方法和变量以后大家使用应该就没什么难度了
下面附上Xlua代码
a = 10;
b = "String格式"
c = true
function start()
print("This is LUASatrt方法")
end
function Update()
print("This is LUAUpdate方法")
end
第一坑我感觉就是大家注意Lua脚本的保存和存储位置
Lua定义方法还有另外一种写法根据个人习惯使用上面的方法书写格式
enable =function()
print("enable");
end
页: [1]
查看完整版本: Xlua 踩坑笔记(一 ) Xlua的创建和读取