c#将方法注册到lua中&& lua访问C#

2人阅读 评论(0) 收藏 举报
分类:

还是上一篇的环境。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LuaInterface;

namespace cs2lua
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建lua的解释器
            Lua lua = new Lua();

            //直接运行
            //lua.DoString("num=2");
            //lua.DoString("score=99");
            //Object[] vals = lua.DoString("return num,score");
            //foreach (object obj in vals)
            //{
            //    Console.WriteLine(obj);
            //}


            //执行已经存在的lua脚本
            //lua.DoFile("myLua");


            //////
            ///把一个c#方法注册到lua的一个全局方法中去
            /////

            //一个类的普通方法注册进去
            //lua.RegeisterFunction("NormalMethod",obj,obj.getType().getMethod("NormalMethod")
            Program p = new Program();
            //注意是public权限
            //lua中的名字,  对象, 方法名字
            //lua.RegisterFunction("LuaMethod", p, p.GetType().GetMethod("CLRMethod"));
            //lua.DoString("LuaMethod()");
            //把一个类的静态方法注册进去
            //lua.RegisterFunction("LuaStaticMethod", null, typeof(ClassName).GetMethod("StaticMethod"));
            lua.RegisterFunction("MyStaticMethod", null, typeof(Program).GetMethod("MyStaticMethod"));
            lua.DoString("MyStaticMethod()");

            Console.ReadKey();
        }/*
            lua  与      c# 对应的类型
            nil         null
            string      system.string
            number      system.double
            boolean     system.Boolean
            table       LuaInterface.LuaTable
            function    LuaInterface.LuaFunction
         */ 
         public void CLRMethod()
         {
            Console.WriteLine("Normal");
         }
        public static void MyStaticMethod()
        {
            Console.WriteLine("Static");

        }
    }
}

Lua

require "luanet"
luanet.load_assembly("System")
luanet.load_assembly("cs2lua")

Int32=luanet.import_type("System.Int32");	 
Program=luanet.import_type("cs2lua.Program");

program1=Program();

print(program1.name);
program1:TestMethod();


查看评论

C#注册类方法到Lua

本文为 csdn rcfalcon 原创,转载请标明出处。 作者:rcfalcon 原文:http://blog.csdn.net/rcfalcon/article/details/5583095...
  • kenkao
  • kenkao
  • 2013-08-20 14:54:11
  • 4644

【Lua】把C#中的静态方法注册进Lua的一个全局方法

using System; using LuaInterface; namespace myLua { class MainClass { public static void Main (s...
  • sinat_20559947
  • sinat_20559947
  • 2015-08-28 19:56:34
  • 2000

C#如何访问Lua中的属性(3)

参考: http://www.myexception.cn/c-sharp/1881698.html Lua如何访问C#中的属性 1) .LUA如何访问Unity提供的对象?   a...
  • taotaoah
  • taotaoah
  • 2016-08-19 00:37:32
  • 753

C#如何访问Lua中的属性(1)

参考   http://www.myexception.cn/c-sharp/1881698.html C#如何访问Lua中的属性 1) .C#如何访问LUA中的属...
  • taotaoah
  • taotaoah
  • 2016-08-18 17:26:22
  • 754

tolua注册对象到lua,并在lua中调用的实现

本文基于tolua里C#与lua互调,在此基础上添加了对象的注册。具体看代码: using System; using UnityEngine; using UnityEditor; using Lu...
  • yuxikuo_1
  • yuxikuo_1
  • 2016-12-27 00:42:02
  • 835

【Lua】访问C#中的属性和方法-特殊情况-带有out和ref关键字

using System; using LuaInterface; namespace myLua { class MainClass { public string name = "Ocea...
  • sinat_20559947
  • sinat_20559947
  • 2015-08-28 23:46:14
  • 3948

lua中调用C#

1.将luanet.dll文件拷贝进工程目录下bin/Debug文件夹下 2.编写lua文件(编码格式应为ANSI) require "luanet" --加载C#命名空间 luanet.lo...
  • u011244737
  • u011244737
  • 2015-11-23 17:25:59
  • 3363

Lua 与C/C++ 交互系列:注册枚举enum到Lua Code中

在Lua Code中注册C/C++的枚举非常容易,就像注册全局变量一样。我们使用枚举名称作为命名空间,来避免注册的枚举发生冲突。注册的枚举存储在全局环境(线程环境)中。 当在Lua Code中访问枚举...
  • sunning9001
  • sunning9001
  • 2015-06-27 09:51:02
  • 2784

[Unity热更新]tolua# & LuaFramework(三):lua使用list与事件委托

1.在Assets\LuaFramework\Editor下有CustomSettings.cs,可以将c#类或者枚举注册到lua中,供lua调用 2.当在lua中调用c#的方法,提示参数错误时,可...
  • lyh916
  • lyh916
  • 2016-04-02 17:59:50
  • 5161

c#导入类到lua

lua与c交互遵循的主要思想是,c你需要什么东西,你给我lua说,我帮你生成,你只能用我给你的api来操作这些lua对象,这些api采用了一个栈结构作为和lua交互的存储结构,以约定的方式把参数放入l...
  • u010544244
  • u010544244
  • 2017-03-31 19:12:06
  • 556
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 11万+
    积分: 7608
    排名: 3554
    博客专栏
    acm

    文章:493篇

    阅读:83252
    openGL

    文章:15篇

    阅读:6870
    最新评论