【问题标题】:Creating iOS Plugin in Unity在 Unity 中创建 iOS 插件
【发布时间】:2012-03-15 01:29:24
【问题描述】:

我是 Unity3d 3.5 的新手,我一直在阅读本手册以了解如何在 Unity 中创建 iOS 插件(我使用的是专业版): http://unity3d.com/support/documentation/Manual/PluginsForIOS.html

我的印象是有一个脚本可以扫描 Unity 项目文件夹中的 Plugins/iOS,并将其中的所有内容符号链接到 Xcode。该手册几乎只是对如何进行操作进行了介绍,对于初学者来说并不是很有帮助。我想知道是否只有一个浮动文件可以完成此操作,或者每个应用程序是否不同?非常感谢任何帮助,在此先感谢!

另外,有谁知道是否有办法让 Unity 在 Plugins/iOS 文件夹中包含 .h 文件和 plist 文件?这听起来是一个更容易的过程。

【问题讨论】:

  • 您使用的是哪个版本的 Unity?
  • @ThomasW Unity3d Pro,对不起,我将其添加进去。
  • 不,Unity 的发行版。 3.4? 3.5?
  • @ThomasW 哦,我使用的是 3.5 版

标签: c# ios xcode unity3d


【解决方案1】:

并确保您定义的所有 C# 方法都采用以下格式:

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

你的 c 函数应该被包裹在里面

extern "C" {
  float FooPluginFunction ();
 } 

如果不是,你的应用就会崩溃

【讨论】:

    【解决方案2】:

    我刚刚尝试使用 Unity 3.5 进行快速测试,自动将本机代码包含在 Assets/Plugins/iOS 文件夹中的功能似乎可以工作,尽管它是有限的。如文档所述,不支持子文件夹。此功能在您使用 Unity“构建”命令创建 Xcode 项目时有效,不需要脚本。

    该页面上有一个示例项目链接,但设置不正确。本机代码需要从Assets/Code 移动到Assets/Plugins/iOS

    【讨论】:

    • 非常感谢!是的,我一直在使用内置功能将文件包含在 Assets/Plugins/iOS 中,但它不包含 .h 文件,因此 Xcode 中的构建会中断。有什么方法可以让 Unity 在该文件夹中包含 .h 文件?或者我可以将该示例项目中的任何文件拖放到 Unity 中吗?再次感谢您的回答!
    • 当您使用该机制时,它会在 Xcode 项目的 Libraries 文件夹中创建指向头文件的符号链接。检查是否正在创建该链接。另外,您是否使用Assets/Plugins/iOS 文件夹中的子文件夹?
    • 请注意,Xcode 并不完全支持这些符号链接。它不显示通过符号链接引用的文件的对应文件(例如头文件)。
    • 很酷,谢谢,这是有道理的。我没有使用任何子文件夹,当我尝试将 .h 文件拖放到 Xcode 项目中时,它表明它已经存在,就像你提到的那样。但是,当它构建时,它无法找到该文件。
    • 要查找头文件,Unity 将“库”文件夹的路径添加到“Unity-iPhone”目标的“库搜索路径”属性中。那个属性到位了吗?它应该显示在目标的“已解决”设置中。
    【解决方案3】:

    如果您想复制或修改 info.plist 文件,您可以使用新的 [PostProcessBuild] 属性来完成。

    http://docs.unity3d.com/Documentation/ScriptReference/PostProcessBuildAttribute.html

    您可以使用它将 info.plist 从已知位置复制到您的构建目录,覆盖现有的,或者您可以使用 PlistCS 之类的东西来修改现有的 info.plist。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多