在上一章節(jié)Unity3D與iOS交互1中,我們簡單介紹了Unity里調(diào)用iOS原生 ~~簡單的傳值。
此章節(jié),我們來講一下Unity調(diào)用iOS原生控件骏掀。我們以提示框(Alert)為例子;
我們在Unity3D中代碼的書寫是一樣的柱告,如果不是特別的需求截驮,或者功能優(yōu)化,基本上都可以用同一的模式际度。
那么我們來說說怎么在Xcode中擼代碼呢葵袭?其實很簡單,iOS怎么編程的就怎么寫乖菱。
iOS中控件的顯示坡锡,都是基于View層之上蓬网,都繼承于UIView,雖然UnityToIOSAlert是繼承于UIVIewControlle鹉勒,但是我們在程序中運行的時候帆锋,都是以Unity為基礎(chǔ)的。所以禽额,我們要通過UnityGetGLViewController();這一方法獲取UIViewController锯厢,并且把原生控件顯示的view添加上去。
上一章節(jié)說道脯倒,iOS中的接口都是用C語言函數(shù)編寫的实辑。所以在函數(shù)方法里面,我們沒有辦法用self. 語法獲取當(dāng)前UIViewController的所有屬性藻丢。即使能夠書寫控件剪撬,也沒有辦法添加到view層上。所以在這里悠反。我們在寫一個接口到正常iOS方法里面残黑。
PS:這里我們需要注意的幾個問題:
? ? ? ? 1.要引入頭文件<QuartzCore/CACisplayLin>,因為UnitySendMessage()方法定義在這里面(我的程序并沒有導(dǎo)入這個頭文件斋否,依然可以調(diào)用UnitySendMessage()萍摊,原因不明 - -!)
? ? ? ? 2.在C函數(shù)中的接口方法會爆一個紅如叼,原因是沒有上下文鏈接,只要把- (void)showAlert;在 .h 函數(shù)中寫一遍就可以了穷劈。(同一天生成2個文件笼恰,一個需要寫,一個不需要 - -P铡)