我在游戏开发中的合作伙伴正在关注Unity。我使用Resource.Load()动态加载资产,并使用AssetDatabase.LoadAssetAtPath()。他们似乎都工作,所以应该使用哪一个?为什么有两种不同的方式来动态加载资产?
答案 0 :(得分:6)
AssetDatabase.LoadAssetAtPath()
vsResource.Load()
......他们俩都是 似乎工作,所以应该使用哪一个?
他们都不是。
你的伴侣最终会得到一个他无法建立的游戏,因为他使用了AssetDatabase.LoadAssetAtPath()
。 AssetDatabase.LoadAssetAtPath()
函数来自UnityEditor
命名空间,该命名空间仅用于制作编辑器插件。它不会在编辑器之外工作,甚至不会让你构建你的游戏。
您使用Resource.Load
很好,但Resource.Load
需要使用Resources文件夹,该文件夹已知会导致游戏加载时间变慢。
AssetBundles是推荐的方式。您可以将这些文件放在 StreamingAssets 文件夹中,然后使用WWW
或AssetBundle
API在运行时加载它。您可以详细了解如何使用AssetBundles here