Unity3D中C 呼叫iOS的靜態庫 a

2021-10-23 04:51:44 字數 572 閱讀 4539

c#端的處理

c#呼叫其他模組的介面都是通過dllimport的方式來實現的。

首先匯入名字空間

using system.runtime.interopservices;

宣告需要使用的c介面

[dllimport("__internal")]

private static extern void __setversion (string version);

ios庫的處理

在ios的工程中定義相應的c介面,並匯出

注意:unity呼叫xcode封裝的函式,宣告時需要用extern "c";

但在實際的使用過程中,遇到乙個奇怪的問題:

在oc sdk中,定義了乙個 __setusetestaddr()介面

u3d工程中使用如下:

但在unity3d工具中執行的時候,總是提示找不到方法的錯誤

如果直接build成xcode工程,又能正常執行。

經過查詢資料,以及請教同事,終於發現問題的所在,需要新增乙個真機平台的判斷,因為呼叫的是ios的靜態庫,必須在iphone環境下才能執行,直接在u3d工具中跑是不行的

Unity3D中C 呼叫iOS的靜態庫 a

c 呼叫其他模組的介面都是通過dllimport的方式來實現的。首先匯入名字空間 using system.runtime.interopservices 宣告需要使用的c介面 dllimport internal dllimport internal private static extern v...

Unity3D 呼叫外部程式

unity3d 呼叫外部程式 1 呼叫外部瀏覽器 void ongui 2 呼叫外部exe void ongui unity3d 動態讀取外部檔案 分兩種情況 1,載入封裝好的內部檔案。var aaa material 空材質 var bbb gameobject 要繫結材質的模型 function...

Unity3d與iOS之間的相互呼叫

u3d呼叫ios 1.1實現原理 ios開發使用的語言是objective c 也稱object c u3d中使用dllimport的attribute,以非託管方式將庫中 的方法匯出到c 中進行使用。而傳入 internal 則是表示這個是乙個靜態庫或者是乙個內部方法。通過上面的宣告,這個方法就可...