iphone - 将 IOS native 对象传回 unity3d

标签 iphone ios plugins unity-game-engine

我使用几个简单的方法实现了 IOS 插件,以将我的统一应用程序与 native 静态库交互。

我遇到的问题是将原生 UI 元素(对象)传回 unity。

F.e 原生 SDK 有创建角标(Badge)的方法(UIView),另一方面我有统一的按钮(它可以是 GUI 元素或一些 3d 对象,无论如何)

我通过我的插件从 unity 访问这个方法,像这样:

[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];

但内部统一。

我知道可以将消息发送回 unity:

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

但是 WhateverValueToSendToUnity 应该是 UTF8 字符串。

总结:

只有一个想法,我必须将坐标从 unity 传递到 native 插件,然后将角标(Badge)添加到这些坐标(不确定这是最佳解决方案):

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

最佳答案

如果只是为了角标(Badge)坐标,你的想法似乎没问题。

如果您想从 iOS 获得其他东西到 Unity,我认为没有很多其他选择。我能想到的唯一其他方法是将数据保存在文件中(例如,在 NSTemporaryDirectory 中),然后使用 UnitySendMessage 将文件名作为 UTF8String 传回。我以前使用过这种技术(将图像和 JSON 文件传递​​给 Unity)。 iOS 会自动清理该目录中的文件。

关于iphone - 将 IOS native 对象传回 unity3d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832580/

相关文章:

ios - UITableViewCells 在 tableview 首次加载时闪烁

ios - 如何用 UICollectionView 实现这个单元格动画

java - 如何在 JAXB2 maven 插件版本 2.4 中定义模式目录?

java - 使用 Java 构建插件系统的最佳方法

ios - WatchKit - 如何使用 RowControllerAtIndex 以编程方式更改 UITableViewCell 的背景图像

grails - 为什么在开发我的 grails 插件时集成测试中的依赖注入(inject)失败

iphone - 如何在 UINavigationBar 下面添加 View

iphone - 从具有多个部分的 UITableView 中删除行

iphone - 如何将图像缩放到全屏模式?

iphone - UILocalNotification - 如何发现用户操作是否来自通知中心?