• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何从原生 iOS 应用程序控制嵌入式 Unity 应用程序

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:32:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想创建一个包含 Unity3D 元素的 iOS 应用。我还想控制这些元素,更改颜色并为其设置特定属性。

我想从 UIKit 元素进行控制,以便我可以轻松地创建我的界面(使用原生元素,例如 UINavigationController)。

有没有办法将 Unity3D View 作为 subview 集成到 native (或 Xamarin)应用程序中?

我找到了一种从 Unity 获取导出的构建代码并将其放入另一个项目中的方法,以便我可以实例化该 UIWindow 并在需要时显示它,但我还没有找到与它交互或将其用作我的 View 层次结构中的 subview 的方式。

有人有这方面的经验吗?或者有办法做到这一点?

编辑:我有一个结构:创建一个统一应用程序,获取主窗口(或者甚至包含在其中的 View ,如果它不与内容混淆),然后根据我的喜好使用 View 层次结构中的 View 。我想我也许可以使用 Native Plugin Interface 与我的 Unity View 对话。

Edit2: 我找到了一个视频,解释了我想到的整个过程:https://vimeo.com/145572230



Best Answer-推荐答案


此交互需要为 Unity 编写 iOS 插件。有点艰巨的工作,但绝对有可能。 看看这里应该可以回答你的问题。

https://docs.unity3d.com/Manual/PluginsForIOS.html

在 C# 文件中定义外部方法如下:

[DllImport ("__Internal")]
private static extern float FooPluginFunction();

将编辑器设置为 iOS 构建目标 将你的原生代码源文件添加到生成的 Xcode 项目的“Classes”文件夹中(这个文件夹在项目更新时不会被覆盖,但不要忘记备份你的原生代码)。 如果您使用 C++ (.cpp) 或 Objective-C++ (.mm) 来实现插件,则必须确保使用 C 链接声明函数以避免名称混淆问题。

extern "C" {
  float FooPluginFunction();
}

从 native 代码调用 Unity

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");

希望有帮助

关于ios - 如何从原生 iOS 应用程序控制嵌入式 Unity 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41459022/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap