我用几个简单的方法实现了 IOS 插件,以使我的统一应用程序与本机静态库交互。
我面临的问题是将原生 UI 元素(对象)传递回统一。
Fe原生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");
但 WhatValueToSendToUnity 应该是 UTF8 字符串。
综上所述:
只有一个想法我必须将坐标从统一传递到本机插件,然后将徽章添加到这些坐标(不确定这是最好的解决方案):
[DllImport("__Internal")]
private static extern void XcodePlugin_AddBadgeViewToCoordinates(x,y);