【发布时间】:2017-09-08 08:54:48
【问题描述】:
我的游戏开发伙伴正在研究 Unity。我使用 Resource.Load() 动态加载资产,他使用 AssetDatabase.LoadAssetAtPath()。它们似乎都有效,所以应该使用哪一个?为什么有两种不同的方式来动态加载资源?
【问题讨论】:
标签: unity3d
我的游戏开发伙伴正在研究 Unity。我使用 Resource.Load() 动态加载资产,他使用 AssetDatabase.LoadAssetAtPath()。它们似乎都有效,所以应该使用哪一个?为什么有两种不同的方式来动态加载资源?
【问题讨论】:
标签: unity3d
AssetDatabase.LoadAssetAtPath()vsResource.Load()...他们俩 似乎有效,所以应该使用哪一个?
没有。
您的伙伴最终会得到一个他无法构建的游戏,因为他使用了AssetDatabase.LoadAssetAtPath()。 AssetDatabase.LoadAssetAtPath() 函数来自 UnityEditor 命名空间,该命名空间仅用于制作编辑器插件。它无法在编辑器之外运行,甚至根本无法让您构建游戏。
您使用Resource.Load 很好,但Resource.Load 需要使用资源文件夹,这会导致游戏加载时间变慢。
AssetBundles 是推荐的方式。您可以将这些文件放在 StreamingAssets 文件夹中,然后使用WWW 或AssetBundle API 在运行时加载它。您可以了解更多关于如何使用 AssetBundles here
【讨论】: