189 8069 5689

UnitySLua如何调用Unity中C#方法

                

义县网站建设公司成都创新互联公司,义县网站设计制作,有大型网站制作公司丰富经验。已为义县上1000家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的义县做网站的公司定做!

1.原理

就是通常在Lua框架中所说的,开放一个C#的web接口,或者叫做在Slua框架中注册函数。

2.作用

在Lua中调用C#中的方法,这个是在做热更新中很常用的一种方法,无论是slua,还是lua,都差不多、这里,我拿slua举例。

3.实际运用 举例:如何在Slua中打印Log

原理:其实是slua通过调用C#中的Debug.Log方法实现的打印,并不是说是lua中的打印方法起到作用。

步骤:

首先,既然是Lua调用C#中的方法,这里自定义写一个打印log的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class CDebug {
 
    ///
    /// lua中打印Log
    ///
    /// 标题
    /// 内容
    public static void Log(string title,string contents)
    {
        int level = 3;
        //这里代码不需要解释把,如果对颜色有需求,可以自己稍微修改一下。
        switch(level)
        {
            case 1:
                Debug.Log(contents);
                break;
            case 2:
                Debug.LogWarning(title+":"+ contents);
                break;
            case 3:
                Debug.LogError(title + ":" + contents);
                break;
            default:
                Debug.Log(contents);
                break;
        }
    }
}

  I:

Unity SLua 如何调用Unity中C#方法

注意图中 标红。一般每个lua框架中,都会有这么个注册函数,加了这个注册函数。才会,有下面那步。执行。

 

II:

点击 Slua->Custom->Make

之后,发现编译之后,多一个:

Unity SLua 如何调用Unity中C#方法

 

III:

注意:之后我们可以看到多了一个脚本,用svn版本控制,对比一下文件,其实还是有其他地方改动的。

会发现BindCustom文件中的代码变成了

1
2
3
4
5
6
7
8
9
10
11
12
13
public class BindCustom {
        public static Action[] GetBindList() {
            Action[] list= {
 
                 Lua_CDebug.reg, //这是自动生成的,多附加的
// 因为之前我们看到CustomExport脚本中的OnAddCustomClass方法中
//很多方法是被注释了,所以,需要手动把之前生成过的文件加上,具体看
//SVN版本控制对比一下BundCustom脚本,需要把之前生成过的代码
//手动加上。
//附加:这个不是什么BUG,因为别人以为所有需要在Lua中调用C#的代码都附加好了,
//所以,不需要了,假如我们的项目需要上线,也需要还原Log方法,因为他会打包到
//apk包中的.

这样一个调用C#中的方法的功能做完了,其他的类似的,仿照这个例子就可以。


分享标题:UnitySLua如何调用Unity中C#方法
文章来源:http://cdxtjz.cn/article/gsghjs.html

其他资讯