Unity3d 统一构建过程不需要';不包括音频文件

Unity3d 统一构建过程不需要';不包括音频文件,unity3d,Unity3d,我遇到了一个问题,在Unity中创建独立的内置会导致音频文件无法复制(据我所知)或内置到“App_Data/Unity default resources”文件中。如果我将音频文件手动复制粘贴到builds resources文件夹中,则构建工作正常。我的文件是.ogg文件,它们存储在Assets/Resources文件夹中,包含与生成一起内置的所有图像。ogg文件确实出现在Unity中,我在C#脚本中引用了它们。音频在Unity中运行时以及在将音频资源复制到standalone builds目

我遇到了一个问题,在Unity中创建独立的内置会导致音频文件无法复制(据我所知)或内置到“App_Data/Unity default resources”文件中。如果我将音频文件手动复制粘贴到builds resources文件夹中,则构建工作正常。我的文件是.ogg文件,它们存储在Assets/Resources文件夹中,包含与生成一起内置的所有图像。ogg文件确实出现在Unity中,我在C#脚本中引用了它们。音频在Unity中运行时以及在将音频资源复制到standalone builds目录后工作

请注意,我希望构建过程本身能够做到这一点,而不是必须编写构建后脚本来复制数据。写这个脚本不会有问题,但我有点惊讶Unity没有自动完成

有人知道为什么Unity没有复制它们吗?是否有一个设置,在我所有的搜索中,我仍然没有找到


提前谢谢

Unity非常擅长在编辑器中包含您引用的内容。如果您没有在编辑器中引用ogg文件,Unity将无法序列化引用,也无法确定您在项目中是否需要它,因为您在代码中引用了它

如果编辑器中有一个具有音频源的游戏对象,并且将ogg文件的一部分放入其中(在“声音剪辑”字段中),则该音频文件将包含在项目中。任何其他类型的编辑器引用都将使Unity在项目中包含一个文件

如果您通过动态加载声音文件来使用它们,那么您需要将所有声音文件包含在资产/资源中,并使用Resources.load()加载它们


最后,要准确地检查包含哪些文件,可以检查编辑器日志。如果Unity没有复制Resources文件夹中的文件,那么唯一可能的答案是您通过帮助->Unity编辑器中的报告错误向他们发送错误报告。

您的音频文件是否标记为“仅编辑器”?请看……当我为目标iOS构建播放器时,甚至会考虑绝对不使用的文件。我认为它们将捆绑在Data/resources.assets(用于iOS)中。如user2599140所述,您应该检查编辑器日志。这些资产是名为“Resources”的目录的直接子目录,还是在子目录中?jahroy:看来游戏对象是唯一可以标记为“仅编辑器”的东西,音频文件没有标记。凯:我很想看到这一切发生!jahroy在帖子中指出,默认情况下,它应该包括我的音频资源,即使在编辑器中未被引用…:(但是,我在Data/resources.assets中看到了对我的音频文件的引用。它们是否打包到了这里,如果是,为什么我不能加载它们?我正在使用WWW.rutter加载:我的目录结构是:-assets/resources/audio/。它有OGG以及用于其他OGG的两个子目录。无加载。虽然这似乎允许Unity知道的音频文件,它只允许我指定一个音频文件。我是否必须编写一个脚本,其中包含一个音频文件数组,我可以将我的音频文件拖放到其中?这似乎是Unity不喜欢的设计。我通过www加载文件,因为我无法获得资源。load()用于处理音频文件(但它确实适用于我加载的所有其他内容)。我找不到此日志文件。它似乎应该在我的appdata/temp/…文件夹中,但它是空的。我在哪里可以找到此文件?感谢提示!您可以拥有一个包含音频剪辑数组的对象,并将所有声音文件拖到那里,但使用resource.load可伸缩性要高得多。在我的代码中,我有:您可以拥有包含音频剪辑数组的对象AudioClip并将所有声音文件拖到那里,但使用resource.load更具可伸缩性。在我的代码中,我有:(AudioClip)Resources.load(AudioFilename,typeof(AudioClip));AudioFilename字符串是指向声音的路径,从资源开始,即如果您有一个名为Sounds的文件夹,其中包含所有声音,则AudioFilename将为Sounds/sound1.ogg。我根据构建加载不同的声音文件,效果很好。我的所有声音都在资源/声音中,Unity会复制它们。日志文件为here:构建应用程序后,您将能够看到包中包含了哪些文件以及它们的自。