ios - 如何从原生 iOS 应用程序控制嵌入式 Unity 应用程序
<p><p>我想创建一个包含 Unity3D 元素的 iOS 应用。我还想控制这些元素,更改颜色并为其设置特定属性。</p>
<p>我想从 <code>UIKit</code> 元素进行控制,以便我可以轻松地创建我的界面(使用原生元素,例如 <code>UINavigationController</code>)。</p>
<p>有没有办法将 Unity3DView 作为 subview 集成到 native (或 Xamarin)应用程序中?</p>
<p>我找到了一种从 Unity 获取导出的构建代码并将其放入另一个项目中的方法,以便我可以实例化该 <code>UIWindow</code> 并在需要时显示它,但我还没有找到与它交互或将其用作我的 View 层次结构中的 subview 的方式。</p>
<p>有人有这方面的经验吗?或者有办法做到这一点?</p>
<p><em>编辑:</em>我有一个结构:创建一个统一应用程序,获取主窗口(或者甚至包含在其中的 View ,如果它不与内容混淆),然后根据我的喜好使用 View 层次结构中的 View 。我想我也许可以使用 Native Plugin Interface 与我的 UnityView 对话。</p>
<p><em>Edit2:</em> 我找到了一个视频,解释了我想到的整个过程:<a href="https://vimeo.com/145572230" rel="noreferrer noopener nofollow">https://vimeo.com/145572230</a> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>此交互需要为 Unity 编写 iOS 插件。有点艰巨的工作,但绝对有可能。
看看这里应该可以回答你的问题。</p>
<p> <a href="https://docs.unity3d.com/Manual/PluginsForIOS.html" rel="noreferrer noopener nofollow">https://docs.unity3d.com/Manual/PluginsForIOS.html</a> </p>
<p>在 C# 文件中定义外部方法如下:</p>
<pre><code>
private static extern float FooPluginFunction();
</code></pre>
<p>将编辑器设置为 iOS 构建目标
将你的原生代码源文件添加到生成的 Xcode 项目的“Classes”文件夹中(这个文件夹在项目更新时不会被覆盖,但不要忘记备份你的原生代码)。
如果您使用 C++ (.cpp) 或 Objective-C++ (.mm) 来实现插件,则必须确保使用 C 链接声明函数以避免名称混淆问题。</p>
<pre><code>extern "C" {
float FooPluginFunction();
}
</code></pre>
<p>从 native 代码调用 Unity</p>
<pre><code>UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");
</code></pre>
<p>希望有帮助</p></p>
<p style="font-size: 20px;">关于ios - 如何从原生 iOS 应用程序控制嵌入式 Unity 应用程序,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/41459022/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/41459022/
</a>
</p>
页:
[1]