zoukankan      html  css  js  c++  java
  • 自定义Loader

    自定义Loader涉及到的接口:

    public delegate byte[] CustomLoader(ref string filePath);
    
    public void LuaEnv.AddLoader(CustomLoader loader);

    demo:

    using UnityEngine;
    using XLua;
    using System.IO;
    public class CreateLoader : MonoBehaviour
    {
        void Start()
        {
            LuaEnv env = new LuaEnv();
            env.AddLoader(MyLoader);
            env.DoString("require 'testlua'");
            env.Dispose();
        }
     
        private byte[] MyLoader(ref string filePath)
        {
            string absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.txt";
            return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));
        }
    }

    testlua代码:

    print('Hello custom loader')

    将testlua代码放在StreamingAssets文件夹下。

    通过AddLoader可以注册个回调,该回调参数是字符串,lua代码里头调用require时,参数将会透传给回调,回调中就可以根据这个参数去加载指定文件,如果需要支持调试,需要把filepath修改为真实路径传出。该回调返回值是一个byte数组,如果为空表示该loader找不到,否则则为lua文件的内容。

  • 相关阅读:
    表的相关操作
    存储引擎介绍
    库的相关操作
    初始数据库
    linux版本的mysql安装
    mysql在windows上的安装即配置
    线程实际操作篇
    用户模板和用户场景
    顶会热词统计
    移动端疫情展示
  • 原文地址:https://www.cnblogs.com/jgsbwcx/p/8862264.html
Copyright © 2011-2022 走看看