1.原理
就是通常在Lua框架中所說的,開放一個C#的web接口,或者叫做在Slua框架中註冊函數。
2.作用
在Lua中調用C#中的方法,這個是在做熱更新中很常用的一種方法,無論是slua,還是lua,都差不多、這裡,我拿slua舉例。
3.實際運用 舉例:如何在Slua中打印Log
原理:其實是slua通過調用C#中的Debug.Log方法實現的打印,並不是說是lua中的打印方法起到作用。
步驟:
首先,既然是Lua調用C#中的方法,這裡自定義寫一個打印log的方法。
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:
注意圖中 標紅。一般每個lua框架中,都會有這麼個註冊函數,加了這個註冊函數。才會,有下面那步。執行。
II:
點擊 Slua->Custom->Make
之後,發現編譯之後,多一個:
III:
注意:之後我們可以看到多了一個腳本,用svn版本控制,對比一下文件,其實還是有其他地方改動的。
會發現BindCustom文件中的代碼變成了
public class BindCustom { public static Action<IntPtr> GetBindList { Action<IntPtr> list= { Lua_CDebug.reg, //這是自動生成的,多附加的 // 因為之前我們看到CustomExport腳本中的OnAddCustomClass方法中 //很多方法是被註釋了,所以,需要手動把之前生成過的文件加上,具體看 //SVN版本控制對比一下BundCustom腳本,需要把之前生成過的代碼 //手動加上。 //附加:這個不是什麼BUG,因為別人以為所有需要在Lua中調用C#的代碼都附加好了, //所以,不需要了,假如我們的項目需要上線,也需要還原Log方法,因為他會打包到 //apk包中的.
這樣一個調用C#中的方法的功能做完了,其他的類似的,仿照這個例子就可以。
相關推薦
'UWA學堂上新:詳解Unity引擎基於物理的渲染(PBR)功能'
"PBR提供了一個大幅度提高遊戲視覺效果的工作流,漸漸成為主流手遊廠商的標配。本視頻從基本概念入手,介紹了PBR的理論基礎,並以BRDF為例講解漫反射、高光反射、菲尼爾函數等原理,最後通過Unity展示了該技術的實現過程,共10節視頻課,是不錯的PBR入門課程。歡迎對畫面美...
'一個資深C語言工程師:淺說C語言的重要性以及如何學好C語言'
"前言C語言屬於高級程序語言的一種,它的前身是“ALGOL”。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的侷限性,因為它只能用於UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的...
'美爆了!國外美工用Unity引擎重製《半條命2》關卡'
"國外3D美術師Deniz Sümer使用Unity引擎重製了《半條命2》的Water Hazard關卡場景,目前他還公開了三張截圖展示了自己的成果。 第一張展示的是白天的關卡畫面,第二張則是展示了夜晚畫面,第三張尤其令人印象深刻,加入了暴風雨天氣。 外媒表示這位3D美術師...
'局域網中共享磁盤映射的便捷方法'
"在局域網中,文件或者磁盤共享成為不可缺少的。將網絡磁盤映射為本地的一個磁盤可以帶來使用上的便利。但有時因為安全或者用戶賬號密碼不存盤的原因,導致每次重啟電腦後都需要重新進行磁盤的映射。下面介紹使用Windows的NET USE命令來進行快速映射首先,我們打開記事本,來做一...
'unity中的數據儲存讀取(基於PlayerPrefs)'
"在開發過程中,我們一定是離不開數據的儲存和讀取的。再簡單的遊戲,它也會有這樣的功能,比如飛機大戰,我們做一個無盡模式,然後做排行榜,那麼排行榜的依據一定是殺敵數了,那麼這個殺敵數,我們每次玩遊戲都會不一樣,如果你不把每次的殺敵數保存起來,那麼就不知道你的成績的好壞了。難道...
'Unity如何製作技能冷卻UI'
"技能的使用,在很多的遊戲裡面都會有用到,比如RPG遊戲,MMORPG,Moba遊戲等,都會用到技能,那麼有技能,就一定會有技能的使用,有技能的使用,就一定有技能的冷卻。然後UI它的作用就是為了讓玩家有直觀的瞭解,對這個技能,比如它的冷卻週期,目的就是為了讓玩家知道,我們還...
'Unity內置尋路算法-導航網格'
"尋路算法非常重要,因為絕大部分的遊戲都需要用到,比如RPG遊戲中的任務系統,任務點擊任務後需要自動尋路到目標位置,再比如Moba遊戲,我們點擊地圖,英雄就會自動尋路到點擊的地方。這就是尋路算法的作用了。那麼怎麼實現尋路算法呢?現在比較流行的就有A*。其實unity有內置的...
'Unity自定義粒子頂點流'
"在本教程中,我們將學習如何在Unity粒子系統中使用自定義頂點流(Vertex Streams)。頂點流通過粒子系統的Renderer模塊來設置,它可以將額外的單個粒子數據傳遞到著色器。著色器可以使用該數據,為系統中的每個粒子創建各種獨特的效果,所有粒子都會在GPU上以極...
'Unity手遊的客戶端啟動流程總結'
"每個遊戲都有自己的啟動流程框架,有簡有繁,但是抽象出來總歸就是那麼幾個步驟,今天我們聊一聊這些步驟。第1步:啟動第2步:判斷當前設備所處環境是內網還是外網環境原因:一般來說內網環境和外網環境在最終的服務器列表展示是不一樣的,外網是正式的服務器列表,內網則是一些測試的服務器...
推薦中...