Unity3d ulua c#与lua交互+wrap文件理解

上次已经搭建好了框架,这里开始使用框架,本文会比较长~~因为我搞了一天,也遇到了好多坑

今天主要记录一下 c# 与 lua 的交互~~ 然后配以demo

C# 调用 lua 这个很简单,之前也有说过,这里不废话,直接贴

	LuaScriptMgr mgr = new LuaScriptMgr ();
	mgr.Start ();
	mgr.DoFile ("LoginUI.lua");


难点其实是Lua调用c#,以及效率问题

>> 最古老的是使用反射调用,不过由于反射的性能问题,目前基本上不怎么用了

>>wrap调用提升了反射在效率上的不足,但是必须自己去wrap,所以大版本更新是可以用到的,小版本更新目前还是得用到反射

ok~~ 肯定一头雾水,什么是wrap,怎么生成wrap,wrap工作原理是怎样的?(在今天之前我也是如此多的疑惑)


什么是wrap: wrap是对c#类的成员函数,成员变量,通过映射的方式。这里对比一下两个文件


这个是c#文件

using UnityEngine;
using System.Collections;

public class LoginData  {
	public string username;
	public string password;
	public int id;

	public LoginData(){
	}

	public LoginData(string username, string password, int id){
		this.username = username;
		this.password = password;
		this.id = id;
	}

	public void Equip(string username, string password, int id){
		Debug.Log ("logindata equip log");
		if (this.username.Equals (username) && password.Equals (password) && this.id == id) {
			Debug.Log ("C# >>> LoginData = {username = " + this.username + ", password =" + this.password + ", id = " + this.id + " check ok!!!");
		} else {
			Debug.Log ("C# >>> LoginData = {username = " + this.username + ", password =" + this.password + ", id = " + this.id + " check error!!!");
	
  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值