在运行时Unity C #Android初始化AudioClip对象

时间:2014-10-01 08:44:59

标签: c# android unity3d

在我的应用程序中,我必须向用户显示一个曲目列表,他可以选择一个特定的曲目&因此,这首曲目将作为背景音乐播放。

现在我已经复制了Resources文件夹中的所有曲目&我通过以下代码将所选曲目作为AudioClip对象加载:

Resources.Load("Childrens Songs - Twinkle Twinkle") as AudioClip;

此代码工作正常,但一旦我创建了我的项目的构建文件(apk文件)。 apk文件的大小从31Mb增加到174MB。仅当我在Resources文件夹中复制我的曲目时才会发生这种情况如果我将这些曲目复制到任何其他文件夹,那么apk大小约为31mbs。

有没有其他方法可以在运行时初始化AudioClip对象(无需在Resources和amp;中使用Resources.Load()进行复制)?

同样可能的原因是,如果在资源和版本中复制,apk大小从31mb增加到174mb。使用Resources.Load()。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

不,没有别的办法。如果你正在进行任何程序生成,除了使用Resources文件夹之外别无选择。

当您将文件移出Resource文件夹时,您构建的项目较小的原因是,如果不使用它们,则构建将忽略它们。但是,当您将它们放在Resource文件夹中时,它们不会被忽略,因为代码可能会加载它们,因此您的构建将会增加。

  

在Unity中,您通常不会使用路径名来访问资产   通过声明成员变量来公开对资产的引用,和   然后在检查员中分配。使用这种技术Unity可以   自动计算构建播放器时使用的资产。   这大大减少了玩家对资产的影响   你实际上在建造的游戏中使用。当您放置资产时   "资源"这个文件夹无法完成,因此所有资产都在   "资源"文件夹将包含在构建中。

Unity API Resources Information