• XLua基础


    一、Lua文件加载

     1).Resources加载xluaTest文件

    2).通过loader加载

     3).自定义Loader(相当于Resources加载和loader加载结合)

       先自定义Loader,再加载

    二、C#访问Lua

    1).获取一个全局基本数据类型

     

    2).访问一个全局的table 

     ①映射到普通class或struct

     ②映射到一个interface

     先建立一个接口(接口需引用"CSharpCallLua")(相当于一个类),再映射

     

     ③映射到Dictionary<>

     ④映射到List<>

     ⑤映射到LuaTable类

    3).访问一个全局的function

    ①C#访问lua方法  无参

    ②C#访问lua方法  有参

    Lua中AddFunc方法

     先定义参数(引用"CSharpCallLua")(相当于一个类),再执行方法操作

     

     输出结果:(在unity中)

     Lua:15;

    15;

    三、C#调用Lua

    Lua中AddFunc方法

    C#调用lua方法 使用LuaFunction

    输出结果为:(在unity中)

    24;

    -22

    四、Lua调用C#

    1).new C#对象

    ①   普通

            C#:           var newGameObj = new UnityEngine.GameObject();

    Lua:  local newGameObj = CS.UnityEngine.GameObject()

    含参构造

    Lua:        local newGameObj2 = CS.UnityEngine.GameObject('helloworld')

    2).访问C#中静态的属性  (调用用".")

    Lua:        print(CS.UnityEngine.Time.deltaTime)

     3).访问C#中静态的方法  (调用用".")

     Lua:        local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')

     4).访问C#中的成员方法  (调用用":")

      Lua:       local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')

    cameraGo:SetActive(false)

     5).访问C#中的成员属性  (调用用".")

      Lua:      local cameraCom = cameraGo:GetComponent("BoxCollider")

    CS.UnityEngine.GameObject.Destroy(cameraCom)

     

  • 相关阅读:
    vue中Axios的封装和API接口的管理
    如何配置Webpack/Vue-CLI实现前端跨域(附跨域大全)
    前端面试几个重要知识点
    js常用函数
    JS中的枚举和不可枚举
    可配置性属性和不可配置性属性
    Object.create()和深拷贝
    JavaScript 中 call()、apply()、bind() 的用法
    从深入到通俗:Object.prototype.toString.call()
    js原生实现三级联动下拉菜单
  • 原文地址:https://www.cnblogs.com/Future-Better/p/10104796.html
Copyright © 2020-2023  润新知