• 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)

     

  • 相关阅读:
    4 ansibleplaybook Sky
    3 ansible常用模块命令 Sky
    13 k8s各组件介绍 Sky
    22、kubernetes安装 Sky
    2022/04/10 TypeScript_Study_Day3
    2022/04/02 TypeScript_Study_Day2
    2022/05/09 TypeScript_Study_Day6
    2022/04/01 TypeScript_Study_Day1
    2022/04/12 TypeScript_Study_Day4
    2022/04/14 TypeScript_Study_Day5
  • 原文地址:https://www.cnblogs.com/Future-Better/p/10104796.html
Copyright © 2020-2023  润新知