ULUA的简洁用法(二)

本文介绍了在Unity中使用ULUA的一种简化方法,无需修改源码,仅通过C#脚本组件作为中间层,连接并调用LUA脚本。中间层负责将Unity的回调传递给LUA,同时也允许LUA操作GameObject。通过实例化中间层,设置公共变量以指定LUA模块名,实现成员方法的调用。测试案例展示了如何创建LUA脚本并实现一个上下运动的立方体效果。
摘要由CSDN通过智能技术生成

《ULUA的简洁用法(二)》
作者: 游蓝海
文章链接:http://blog.csdn.net/you_lan_hai/article/details/70554237
转载请注明出处

写上一篇文章《ULUA简洁用法》的时候,我对ULUA的认识还不是很深,经过一段时间的摸索后,我又整理了另一种更简单的方式,不需要修改ULUA源码,一个代码文件就能容纳下所有需要的内容。

1.原理

给GameObject添加上一个C#脚本组件作为中间层,在中间层上绑定上一个LUA脚本,将Unity的所有回调接口通过中间层传递到LUA。同时,LUA脚本也可以通过中间层操作GameObject。

2.实现中间层LuaBehaviour

中间层从MonoBehaviour派生

添加public变量ScriptName,用于在编辑器属性界面中输入Lua的模块名。当中间层Awake的时候,根据ScriptName加载Lua文件,并实例化出Lua类对象。

实例化LuaClient

LuaClient在整个工程中应当只存在一个实例对象,我们可以把他绑定到一个不随关卡销毁的GameObject对象上(调用了DontDestroyOnLoadGameObject)。我们可以把实例化步骤也放到中间层脚本上,如此一来,只要场景中挂载了中间层脚本,LuaClient也就会被自动初始化。

调用成员方法

对于只调用一次的Lua层方法,我们没必要在C#端去记录这个成员变量,比如Lua层面的AwakeStart方法。为了方便使用,我们在需要自动将self作为第一个参数,传递给Lua方法。

object[] CallMethod(string func, params object[] args)

中间层关键代码

using UnityEngine;
using System;
using System.Collections;
using LuaInterface;

public class LuaBehaviour : MonoBehaviour
{
    public string     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值