Unity Addressable 本地模拟热更新

Unity新的资源管理系统 Addressable

正好学习到Unity新的资源管理系统 在这里给大家分享一下最近的一些想法
如果你也在学习 那么我这里可能有你需要的内容 (也可能没有)

经历的项目中 以前都是bundle去处理资源以及依赖关系,但是当内容过多时依赖关系及其不好处理(也可能是都这个样子)
这篇文章主要是实践 而非长篇大论的理论 我始终认为实践才是一个合格程序员的正途 废话不多说直接上干货

如果你想了解更细API请参考官网

一、新建unity工程导入Addressables

我用的2018.4.12 在这里导入 Window =>Package Manager
Unity Addressable 本地模拟热更新
我这里用的1.8.3版本 点安装 我这里安装好了就没有安装了 (注意:不同版本有些功能位置可能不太一样 自己可以找一下 )

二、创建一个资源

我在Hierarchy中创建了一个Image加一个Text简单的一个资源

将资源做成一个prefab放入Resource_hot文件夹
Unity Addressable 本地模拟热更新
选中Image 将Inspector面板的Addresable勾选

地址可以自己改一下,我这里去掉了Asset
Unity Addressable 本地模拟热更新
至此资源的制作已经完成了 使用代码就可以加载了 将脚本挂在Canvas上 address填成上面我们修改的那个地址

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class LoadGameObject : MonoBehaviour
{
    public string address;
    // Start is called before the first frame update
    void Start()
    {
        Load();
    }

    void Load()
    {
        Addressables.LoadAssetAsync<GameObject>(address).Completed +=
            (op) =>
            {
                if(op.Status == AsyncOperationStatus.Succeeded)
                {
                    Debug.Log(op.Result as GameObject);
                    var go = Instantiate(op.Result as GameObject, Vector3.zero, Quaternion.identity, transform);
                    go.transform.localPosition = Vector3.zero;
                }
            };
    }
}

但是我们是要测试本地热更资源 所以后续还会有一些内容

三、开启本地模拟服务器并配置Remote的地址

打开 Window => Asset ManageMent => Addressables => Hosting

点Create->Local Hosting
Port 填个端口,然后将Enable打勾✔
Unity Addressable 本地模拟热更新
接下来设置RemotePath
打开Profiles窗口 Window => Asset ManageMent => Addressables => Profiles
将RemoteLoadPath改成http://[PrivateIpAddress]:[HostingServicePort]
其他地址不用修改

至此我们本地模拟服务器设置完成

四、配置资源

资源有了,模拟服务器也配置完成了 。接下来我们要配置一下资源,然后将资源放到我们要加载的路径
选中AddressableAssetSettings设置Build Path和Load Path 注意我标箭头的地方
Unity Addressable 本地模拟热更新
选中Default Local Group 注意标箭头的配置
Unity Addressable 本地模拟热更新
打开Groups窗口 Window => Asset ManageMent => Addressables => Groups
我这里没有将资源分组,使用的默认的分组 先将Play Mode Script 改成Use Exiting Build ,然后点Build->
New Build ->Default Build Script

到这里配置完成!接下来打个包测试一下。我图省事儿就打的exe

五、测试

打包完成运行!!
Unity Addressable 本地模拟热更新
完美加载!没毛病!!

说好的热更资源呢?别急! 来了!

接下来我们来做一下资源更新

首先改一下资源Unity Addressable 本地模拟热更新
然后再打开Group窗口 Window => Asset ManageMent => Addressables => Groups
点Tools->Check for Content Update Restrictions
Unity Addressable 本地模拟热更新
选择后点Apply Changes
然后点Group窗口的Build->Update a Previous Build
ok 我们再运行一下exe
Unity Addressable 本地模拟热更新
没毛病!

至此本地模拟热更新就ok了 如果有不明白的小伙伴欢迎私信!

谢谢大家

上一篇:C++ 日志库 boost::log 以及 glog 的对比


下一篇:Unity Packages 介绍