连接lua虚拟机

该文章展示了如何在Unity3D环境中利用XLua库创建一个虚拟机来执行Lua脚本。通过`LuaEnv`对象加载和执行Lua代码,注册自定义加载器,回调`Start`和`Update`函数,实现游戏逻辑的更新。
摘要由CSDN通过智能技术生成

虚拟机

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值