我想创建一个包含 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-推荐答案 strong>
此交互需要为 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/
|