Unity3D與iOS交互2(Unity里調用iOS原生)

在上一章節Unity3D與iOS交互1中,我們簡單介紹了Unity里調用iOS原生 ~~簡單的傳值。

此章節,我們來講一下Unity調用iOS原生控件。我們以提示框(Alert)為例子;

我們在Unity3D中代碼的書寫是一樣的,如果不是特別的需求,或者功能優化,基本上都可以用同一的模式。

那么我們來說說怎么在Xcode中擼代碼呢?其實很簡單,iOS怎么編程的就怎么寫。

iOS中控件的顯示,都是基于View層之上,都繼承于UIView,雖然UnityToIOSAlert是繼承于UIVIewControlle,但是我們在程序中運行的時候,都是以Unity為基礎的。所以,我們要通過UnityGetGLViewController();這一方法獲取UIViewController,并且把原生控件顯示的view添加上去。

上一章節說道,iOS中的接口都是用C語言函數編寫的。所以在函數方法里面,我們沒有辦法用self. 語法獲取當前UIViewController的所有屬性。即使能夠書寫控件,也沒有辦法添加到view層上。所以在這里。我們在寫一個接口到正常iOS方法里面。

PS:這里我們需要注意的幾個問題:

? ? ? ? 1.要引入頭文件<QuartzCore/CACisplayLin>,因為UnitySendMessage()方法定義在這里面(我的程序并沒有導入這個頭文件,依然可以調用UnitySendMessage(),原因不明 - -?。?/p>

? ? ? ? 2.在C函數中的接口方法會爆一個紅,原因是沒有上下文鏈接,只要把- (void)showAlert;在 .h 函數中寫一遍就可以了。(同一天生成2個文件,一個需要寫,一個不需要 - -?。?/p>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。

推薦閱讀更多精彩內容