Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门

Posted 陈言必行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门相关的知识,希望对你有一定的参考价值。

可寻址系统设置面板使用介绍介绍 -- 入门(三)

概述:本篇文章带大家了解可寻址系统的目录和各个设置面板的属性介绍。若需要了解如何导入可寻址系统和可寻址系统的相关概念,可点击链接查看上一篇文章。

一,可寻址系统目录介绍


二,可寻址系统面板介绍

2.1 Groups - 资源组

可寻址系统资源组:

  1. 创建组:
    打开 Addressables Group 窗口(菜单:Window > Asset Management > Addressables > Groups)。然后点工具栏中的Create,即可打开上图界面。

  2. 创建新组:
    创建组成功后,会自带一个(Default Local Group)组,在左上角New下拉菜单中选择模版创建新组;或者在标签页右键空白处可选Create Group创建新组:

  3. 操作组:
    选择预操作组,右键可以看到可操作选项有:移除组,简化名称,设置为默认组,查看组设置面板,重命名,创建新组

  4. 添加资源到组:
    在Project中选择需要添加资源,直接拖拽到组中即可:

  5. 操作组内资源:
    选中组内资源,右键可以看到操作选项有:移动到现有组,移动到新建组中,简化名称,复制资源名称到剪切板,修改资源,创建新组:

  6. 标签:
    在组内资源的最后一栏中可以添加标签,要分配标签,请选中或取消选中所需标签的复选框。单击左上角的加号按钮,然后单击管理标签以添加、删除或重命名您的标签。

    标签的作用在于一个组内的分类,当我们打Bundel包时,一个Group会打成一个包,若我们将组内资源设置为不同标签,在设置组的打包方式为Pack Together By Layer,可寻址系统就会以Label为颗粒细分成多个.bundle,使得组更加灵活:

  7. 工具栏:
    资源组的工具栏包括:打开系统设置,检测内容更新限制,窗口(配置文件,标签页,分析工具等),组视图可以设置组窗口显示选项。

  8. 加载模式:
    可通过设置在编辑进行模拟远程加载,三种方式分别为:Fast Mode --> 研发阶段;Virtual Mode --> 本地模拟;Packed Play Mode --> 正式打包

  9. 构建脚本:
    选择执行构建命令:创建一个新的构建(打新资源包),更新以前的构建(热更资源包),清理构建生成文件


2.2 Settings - 设置

Settings:可寻址系统的各种,和单一组的各种设置详细介绍都在上篇文章写了,需要的童鞋,可以点击链接查看。


2.3 Profiles - 配置文件

打开 Profiles 窗口(菜单:Window > Asset Management > Addressables > Profiles)

Profiles其实就是配置文件打包和加载使用的路径的:

  • Local:为本地内容定义两个路径变量:

    1.Local.BuildPath:设置使用此本地打包资源保存路径。

    2.Local.LoadPath:加载应用程序本地安装的资产的位置。

  • Remote:为远程内容定义两个路径变量:

    1.Remote.BuildPath:设置使用此远程打包资源保存路径。

    2.Remote.LoadPath:从中下载远程内容和目录的 URL。

  • BuildTarget:构建目标的名称,例如 androidios

  • 新建配置:
    可以通过右键删除,修改名称;右侧面板可以通过选择Custom来自定义各个加载地址和构建目标:

更换配置:
两种方式:

  1. 在资源组中设置使用配置文件:

  2. 在设置面板中设置使用配置文件:

配置变量语法:

  • 大括号:可寻址对象在运行时评估大括号包围的条目。可以使用运行时类的代码变量(例如 UnityEngine.AddressableAssets.Addressables.RuntimePath)。

  • 中括号[]:在构建时评估被方括号包围的条目。这些条目可以是其他配置文件变量(例如 [BuildTarget])

PS:尽量不要修改本地路径(Local.BuildPathLocal.LoadPath),可寻址系统会在打包时自动从Addressables.BuildPath复制到 StreamingAssets 文件夹。若修改了则需要手动复制后再重新打包。

一个示例:

若你有很多的平台需要修改配置文件则可以这样写:

Remote.LoadPath:[BuidleEditor.RemoteLoadPath] --> 对应下面代码中的变量:


2.4 Event Viewer - 事件查看器

打开面板:菜单:Window > Asset Management > Addressables > Event Viewer

开启方法:在可寻址系统的设置面板的在Diagnostics下,勾选Send Profiler Events选项,然后允许程序,即可在Event Viewer窗口看到如下现象:

可以此窗口监控内存的使用情况,此窗口可以显示应用程序何时加载和卸载资产,并显示所有可寻址系统操作的引用计数。

PS:我这里用代码加载了两个物体,加载代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;

public class LoadManager : MonoBehaviour

    void Start()
    
        LoadGameObject("Assets/Prefab/Cube.prefab", Vector3.zero);
        LoadGameObject("Assets/Prefab/Sphere.prefab", Vector3.right * 2);
    

    void LoadGameObject(string loadStr, Vector3 pos)
    
        Addressables.LoadAssetAsync<GameObject>(loadStr).Completed += (obj) =>
        
            GameObject go = obj.Result;

            Instantiate(go, pos, Quaternion.identity);
        ;
    


2.5 Analyze - 分析工具

分析工具是一种收集有关项目的可寻址布局信息的工具。在某些情况下,Analyze 可能会采取适当的措施来清理您的项目状态。

通过 Window > Asset Management > Addressables > Analyze 打开工具窗口:

分析窗口显示分析规则列表包括以下操作:

  • 分析选定的规则
  • 清除选定的规则
  • 修复选定的规则

Check Duplicate Bundle Dependencies(检查重复Bundle包依赖):此规则会扫描所有组并计算资源组布局来检查可能重复的资源。这个需要一个完整的打包过程进行检查。

在打过一次资源包后,右键运行即可得到检测结果,由于我这里资源组少且没有依赖关系,所以显示的是:No issues found。


2.6 Hosting - 托管服务

托管服务提供了一个集成工具,可以在本地模拟使用服务器功能的工具。

新添加的服务出现在Addressables Hosting窗口的Hosting Services部分。使用服务名称字段输入服务的名称。

新服务默认为禁用状态。选中Enable复选框,即开启本地服务。要选择不同的端口,请在“端口”字段中分配特定的端口号,或单击“重置”按钮分配不同的随机端口号。

使用示例:创建并开启本地服务后,在配置文件中使用本地服务为远程加载地址,最后设置资源包加载方式使用刚刚设置的路径即可实现模拟远程加载:

版本适配:2022.1之后的版本,默认情况下不允许 HTTP 下载。为了使默认HTTPHostingService设置正常,需要在Edit > Project Settings > Player > Other Settings > Allow downloads over HTTP中将Allow downloads over HTTP设置设置为Not allowed以外的其他选项


以上是关于Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门的主要内容,如果未能解决你的问题,请参考以下文章

Unity 之 Addressable可寻址系统 -- 可寻址系统面板介绍 -- 入门

Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门

Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门

Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门

Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门

Unity 之 Addressable可寻址系统 -- 可寻址系统使用介绍 -- 入门