zoukankan      html  css  js  c++  java
  • 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)

     

  • 相关阅读:
    QT5编程入门教程
    bstr_t与BSTR
    Android Studio 更改APP图标
    Indy服务器关闭所有客户端连接
    使用高德地图API
    内网渗透——Hadoop未授权访问getshell
    内网渗透——struts2远程任意代码执行(s2-046)
    工具使用——cobalt strike使用
    工具使用——docker使用
    漏洞复现——weblogic任意文件上传(cve-2018-2894)
  • 原文地址:https://www.cnblogs.com/Future-Better/p/10104796.html
Copyright © 2011-2022 走看看