2013-04-05 32 views
1

我實現了IOS插件和幾個簡單方法來將我的統一應用程序與本地靜態庫進行交互。將IOS本機對象傳遞迴unity3d

我面臨的問題是將本地UI元素(對象)傳回統一。

鐵原生SDK具有創建徽章(UIView的)方法,而另一方面我有統一按鈕(也可能是GUI元素或一些3D物體,不管)

我從單位通過我的訪問此方法插件,像水木清華:

[DllImport("__Internal")]  
private static extern void XcodePlugin_GetBadgeView();  

及以下:

void XcodePlugin_GetBadgeView() 
{ 
    // Generate native UIView 
    UIView *badge = [Badge badge]; 

    ???? Return UIView badge instance to unity (hm)?! 
} 

所以,我需要這樣的東西:

[someViewOrObject addSubView:badge]; 

但內部統一。

我知道有要發送消息回團結能力:

UnitySendMessage("UnityCSharpClassName" , "UnityMethod", "WhateverValueToSendToUnity"); 

但WhateverValueToSendToUnity應該是UTF8字符串。

結論:

只有一個想法,我必須從統一到本機插件傳遞的是座標,然後添加徽章這些座標(不知道這是最好的解決方案):

[DllImport("__Internal")]  
private static extern void XcodePlugin_AddBadgeViewToCoordinates(x,y); 

回答

1

如果它是隻是爲了徽章座標,你的想法看起來很好。

如果還有其他事情你想從iOS進入Unity,我不認爲有很多其他的選擇。我能想到的唯一的另一種方式是將數據保存在文件(例如,在NSTemporaryDirectory中),然後使用UnitySendMessage作爲UTF8String傳回文件名。我之前使用過這種技術(將圖像和JSON文件傳遞給Unity)。 iOS中的文件會自動清理。

+0

thx,這是有幫助的。我有關於IOS代表的另一個問題。我可以通知統一,如果發生的事情: f.e unitySendMessage(someClass,someNotification),我可以調用統一回調或smth像:onSuccessSomthing()或onErrorSometing() – Injectios 2013-04-08 07:51:37