虚拟机
using UnityEngine;
using System;
using System.IO;
using XLua;
public class LuaStart : MonoBehaviour
{
//new一个虚拟机对象
LuaEnv lua = new LuaEnv();
//start update事件
public Action action_Start, action_Update;
void Start()
{
//回调
lua.AddLoader(OnCustom);
//加载主代码
lua.DoString("require'Mainlua'");
//给事件赋值
action_Start = lua.Global.GetInPath<Action>("Start");
action_Update = lua.Global.GetInPath<Action>("Update");
//执行start事件
if (action_Start != null)
action_Start();
}
private byte[] OnCustom(ref string filepath)
{
//获取到lua代码所在路径
string path = Application.dataPath + "/LuaScripts/" + filepath + ".lua";
return File.ReadAllBytes(path);
}
void Update()
{
//执行update事件
if (action_Update != null)
action_Update();
}
}
lua
-- 引用
require("Lipus/BaseClass")
require("Lipus/head")
function Start()
end
function Update()
end
该文章展示了如何在Unity3D环境中利用XLua库创建一个虚拟机来执行Lua脚本。通过`LuaEnv`对象加载和执行Lua代码,注册自定义加载器,回调`Start`和`Update`函数,实现游戏逻辑的更新。
644

被折叠的 条评论
为什么被折叠?



