在上一章節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>