包含此页的版本:
不含此页的版本:
这Resourcesclass 允许您查找和访问位于Resources文件夹。
您可以使用资源系统使资产可供项目使用,而无需将其作为场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表.将内容添加到名为Resources在您的项目中,Unity 可以在需要时加载它,而与您构建的场景无关。
但是,在运行时持续提供内容会对项目的性能产生重大影响,尤其是当它包含大量资产时。AssetBundles 系统或 Addressables 包提供了一种更好的方法来管理复杂的资产集。有关不同资产管理选项的更多信息,请参阅资产管理简介。
这Resources系统在以下情况下会有所帮助:
后者的示例包括用于托管的 MonoBehaviour 单例预制件一种资产类型,允许您存储包含组件和属性的游戏对象。预制件充当模板,你可以从中在场景中创建新的对象实例。更多信息
请参阅术语表或包含第三方配置数据(例如 Facebook 应用 ID)的 ScriptableObject 实例。
最佳做法是避免将大量内容放入资源系统,原因如下:
Resources文件夹会减慢应用程序启动速度和构建长度。Resources系统使向特定平台交付自定义内容变得更加困难,并阻止增量内容升级。Resources文件夹需要播放器重新构建和重新部署,而 AssetBundles 更适合增量内容更新。如果您需要通过 CDN 管理内容,或定期进行补丁更新,则建议使用 AssetBundles 和 Addressables 包。如果您不需要资源系统提供的额外控制,也可以使用直接引用。
Unity 将资产引用的所有对象组合在Resources在构建项目时,文件夹转换为单个序列化文件,类似于构建一个大型 AssetBundle。Unity 需要时间来构造为文件中的所有对象编制索引的数据结构,并使用与对象数量成正比的内存,即使它们没有加载。如果资源文件夹中的单个资产数量较多,或者存在包含大量对象的预制件,这会对性能产生影响。例如,在低端移动设备上初始化包含 10,000 个资源的资源系统需要几秒钟的时间,即使应用程序的第一个场景中很少需要资源文件夹中包含的大多数对象。