溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-20 17:17:19 來源:網絡 閱讀:1325 作者:吳金瑞 欄目:網絡安全

                

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 {
 
    /// <summary>
    /// lua中打印Log
    /// </summary>
    /// <param name="title">標題</param>
    /// <param name="contents">內容</param>
    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<intptr>[] GetBindList() {
            Action<intptr>[] list= {
 
                 Lua_CDebug.reg, //這是自動生成的,多附加的
// 因為之前我們看到CustomExport腳本中的OnAddCustomClass方法中
//很多方法是被注釋了,所以,需要手動把之前生成過的文件加上,具體看
//SVN版本控制對比一下BundCustom腳本,需要把之前生成過的代碼
//手動加上。
//附加:這個不是什么BUG,因為別人以為所有需要在Lua中調用C#的代碼都附加好了,
//所以,不需要了,假如我們的項目需要上線,也需要還原Log方法,因為他會打包到
//apk包中的.
</intptr></intptr>

  

這樣一個調用C#中的方法的功能做完了,其他的類似的,仿照這個例子就可以。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女