1. 程式人生 > >Unity3D 預備知識:C#與Lua相互呼叫

Unity3D 預備知識:C#與Lua相互呼叫

public class CSharpLuaTest : MonoBehaviour {

    private LuaState luaState = new LuaState(); // 建立lua虛擬機器 
   
    void Start ()
    {
        // 在lua虛擬機器(全域性)中註冊自定義函式
        this.luaState.RegisterFunction("CSharpMethod", this, this.GetType().GetMethod("CSharpMethod"));

        // 載入lua檔案(絕對路徑)  
this.luaState.DoFile(Application.streamingAssetsPath + "/Test.lua"); // 載入完檔案後,使用GetFunction獲取lua指令碼中的函式,再呼叫Call執行。 object[] objs = luaState.GetFunction("LuaMethod").Call(999); Debug.Log(string.Format("{0} - {1}" ,objs[0], objs[1])); } //自定義功能函式,將被註冊到lua虛擬機器中
public string CSharpMethod(int num) { return string.Format("Hello World {0} !" , num+1); } void Update () { } }

相關推薦

Unity3D 預備知識C#Lua相互呼叫

public class CSharpLuaTest : MonoBehaviour { private LuaState luaState = new LuaState(); // 建立lua虛擬機器 void Start () { //

1、在C#Lua相互呼叫

一、利用LuaInterface呼叫lua程式碼 1、下載luainterface,這裡用的luainterface-1.5.3版本。 2、新增 LuaInterface.dll的引用。 3、利用直譯器進行呼叫 using System;   using L

C#lua相互調用

.net 靜態 read ogr 資源 相互 tasks 1.5 .com   Lua是一種很好的擴展性語言,Lua解釋器被設計成一個很容易嵌入到宿主程序的庫。LuaInterface則用於實現Lua和CLR的混合編程。 (一)C#調用Lua   測試環境:在VS2015中

C++Lua互動1 C++呼叫lua

lua作為一門動態語言,可用來當做配置檔案和實現經常變化的業務功能,很方便的實現熱更新。同時lua作為一門膠水語言,配合強大的C++作邏輯支撐,程式效能高、開發效率快,猶如珠簾合璧,所向無敵。C++與lua的互動主要通過lua的虛擬棧實現,本文不打算深入講解其

C++int string相互轉換

1、string轉int的方式 採用最原始的string, 然後按照十進位制的特點進行算術運算得到int,但是這種方式太麻煩,這裡不介紹了。 採用標準庫中atoi函式。 string s = "12";  int a = atoi(s.c_str());

cocos2d-x學習筆記(c++lua交互回調函數的處理)

回調函數 tolua++ cocos2dx lua 本文假設讀者已經會使用tolua++進行C++與lua之間的通訊1、在頭文件中定義註冊回調函數,定義在MyClass類中void register(unsigned short cmdID, LUA_FUNCTION func);//LUA_

c++ lua 簡單交互參數介紹

nil mod 一次 toc clip main copyto 新的 world 原文http://blog.csdn.net/johnice/article/details/5517431 一、第一個例子 Hello World ! [c-sharp] v

PythonC之間的相互呼叫(Python C API及Python ctypes庫)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Direct3D基礎——預備知識多重取樣、畫素格式、記憶體池、交換鏈和頁面置換、深度快取、頂點運算、裝置效能

多重取樣 用畫素矩陣表示影象的時候往往會出現塊狀效應,多重取樣便是一項用於平滑塊狀影象的技術。 圖片來自:DirectX9.03D遊戲開發程式設計基礎 左邊那條是一條鋸齒線,右邊是一條經過取樣的反走樣線,看上去要平滑的多。 D3DMULTISAMPLE_TYPE列舉型別包含

Direct3D基礎——預備知識表面

表面我們可以將其看作是Direct3D主要用於儲存2D影象資料的一個畫素矩陣。雖然我們將表面看作矩陣,但是其實際的儲存是在一個線性數組裡面。 表面的寬度(Width)和高度(Height)都是用畫素來表示,跨度(Pitch)則用位元組來度量,更具體的說:跨度(Pitch)可能比寬度(W

小記datetime timestamp 相互轉換遇到的坑

事情是這樣的,今天遇到一個業務場景:按照比賽的時間start_at作為分頁查詢的條件獲取賽程列表,首先初始化20條資料(資料庫用的是MongoDB) 事情是這樣的,今天遇到一個業務場景:按照比賽的時間start_at作為分頁查詢的條件獲取賽程列表,首先初始化20條資料(資料庫用的是Mongo

JsonUtils的實現物件json相互轉換

pom.xml依賴 <dependency> <groupId>com.fasterxml.jackson.core</groupId> &

C C++ 介面函式相互呼叫

文章目錄 一、C 或 C++ 編譯的四個步驟 (一) 預處理 (二) 編譯 (三) 彙編 (四) 連結 二、C 與 C++ 介面相互呼叫的關鍵 三、extern "C" 四、C 函式呼叫 C++ 介面

unity3d 中JavaScript指令碼和C#指令碼的相互呼叫

本人親測unityd5.56版本,開啟Unity在Project檢視下新建資料夾Standard Assets。新建JavaScript指令碼:testJs,C#指令碼testCs. testJs程式碼如下: function OnGUI()     {       

CTimeCString相互轉化

轉自:http://blog.163.com/[email protected]/blog/static/459230342009230115919910/一.CTime轉化為CStringCTime  tmSCan = CTime::GetCurrentTime();CString s

java基礎知識集合陣列的變換

一 集合變為陣列 為了限定對元素的操作,不需要進行增刪除的時候。 1.集合的擷取: List<String> list=new ArrayList<String>(); list.add("beijing"); list.add("shanghai"); li

Mac下命令列安裝指定版本的lua,然後c++,lua相互互動

1.lua下載地址 2.build lua檔案 /Users/jianan/Downloads/lua-5.3.3 make macosx 3.安裝 make macosx install 4

.NET中WebBrowser控制元件內部頁面的JS程式碼外部C#程式碼的相互呼叫

場景1:C#程式呼叫JS函式重新整理網頁,輸出再見兩字;測試目標:C#呼叫JS函式 場景2:C#程式呼叫JS函式重新整理網頁,輸出文字為使用者輸入的文字;測試目標:C#呼叫帶引數的JS函式 場景3:C#程式呼叫JS函式獲取今日的年月日資訊(yyyy-MM

C++ c# 模組 之間相互呼叫

using namespace System; using namespace System::Reflection; namespace adapter {     public ref class wrapper     {     private:         static Assembly^ dl

C/C++ lua混合使用入門講的比較好的文章

轉自 http://www.open-open.com/home/space-6246-do-blog-id-1426.html Lua是一個嵌入式的指令碼語言,它不僅可以單獨使用還能與其它語言混合呼叫。 Lua與其它指令碼語言相比,其突出優勢在於: 可擴充套件性。Lua的擴充套件性非常卓越