ulua学习笔记1
发布日期:2021-06-30 19:38:38 浏览次数:2 分类:技术文章

本文共 1296 字,大约阅读时间需要 4 分钟。

ulua下载:

ulua技术论坛:

ulua的机制是利用的反射,就是lua代码和C#代码相互映射

首先导入LuaInterfaceusing LuaInterface;

在C#中实例化的LuaState也可以预定义一些Lua全局变量,这都是在C#里完成的,比如:

void SetLuaData(LuaState lua){       lua["transform"] = transform;       lua["gameObject"] = gameObject;}

预定义了两个变量,一个是transform,一个是gameObject。

关于Lua里的全局变量:

Lua里所有的字符串,如果不是关键字或者运算符,就都是变量;这些变量中,凡是没用local关键字修饰的,就是全局变量,反之,则是局部变量。每个LuaState对象,当它加载过Lua代码以后,它里面定义的全局变量,在这个对象生命期内是一直存在的。如果两次调用这个LuaState的某方法,第一次将某全局变量进行了修改,那么第二次,这个全局变量会在第一次修改的基础上继续修改。

首先是导入了  C#集合以及'UnityEngine'
luanet.load_assembly("Assembly-CSharp")
luanet.load_assembly('UnityEngine')

关于Lua里的预处理:

luanet.load_assembly("Assembly-CSharp")

luanet.load_assembly('UnityEngine')

Vector2 = luanet.import_type('UnityEngine.Vector2')

Vector3 = luanet.import_type('UnityEngine.Vector3')

GameObject = luanet.import_type('UnityEngine.GameObject')

luanet.import_type('System.Collections.Generic.List')

Debug = luanet.import_type('UnityEngine.Debug')

import操作是Lua调用C#的前提

下面导入了一个名字为“CSharpClass_name”的.cs格式的脚本类。
CSharpClass= luanet.import_type('CSharpClass_name')

在Lua里面使用C#的类可以通过两种方式,一种就是将C#类付给lua的一个变量;另一种方法就是通过GetComponent方法,将C#引进到Lua里面。

例:

local go=GameObject.Find(obj_name’);
local labletext = go:GetComponent('UILabel');

注意:

对象调用自己的函数用冒号

lua的后缀是不被支持打包进assertbundle的,所以我们一般把 .lua后缀 变为.lua.txt 或者 .lua.bytes 进行打包。

转载地址:https://linxinfa.blog.csdn.net/article/details/51811765 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ulua与unity互传数组
下一篇:Mono.Cecil简介与示例

发表评论

最新留言

很好
[***.229.124.182]2024年04月19日 22时58分23秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章