unity3b java教程,Unity Addressable入门篇

Addressable入门篇

配置Addressable

在unity2018.2及以上可以在Window->package Manager->中搜索Addressable并安装

9964f04ca991383b8f9d9376839a6551.png

安装完成后,所有的资源都会有一个可勾选的Addressable

bad66a883a1ccdf31ad2321857a1c0e4.png

当勾上后就会被Addressable系统管理

在Window->asset mangment->addressable->Groups查看和管理资源

0d37f9c6ccfc1d906f6fb4615db62c8f.png

AddressableName资源:

默认AddressableName就是资源在Assets下的路径==Path,可以直接F2重命名,这里简称key

Addressale加载资源就是通过这个key

key可以重复,加载单个时,如果key重复,那么加载的就是是第一个,读取多个时,可以加载所有相同可以的资源

labels标签:

每个资源可以设置多个标签,读取资源时,除了通过name读取还可以通过label读取label也可以当key用,可以加载单个和多个,加载顺序和key一样,多个label时加载单个为第一个

打资源包(单机本地)

Content Packing&Loading

选择BuildPath->LocalBuildPath:运行地址,LoadPath->LocalLoadPath:读取运行包地址

1de51557c7aa34929b7b342c7b5819de.png

打包:build->new build->Default build script

fadfcf903c72cbc62757c091b8c40bec.png

打apk包后,加载的资源就是这里

热更(本地模拟):

打开Window => Asset ManageMent => Addressables => Hosting点Create->Local Hosting Port 填个端口,然后将Enable打勾✔

将RemoteLoadPath改成http://[PrivateIpAddress]:[HostingServicePort]

当资源更新后:

Window => Asset ManageMent => Addressables => Groups点Tools->Check for Content Update Restrictions

弹出文件框,要求之前的bin文件,有android和window

选择后点Apply Changes 然后点Group窗口的Build->Update a Previous Build

==================================我是分割线===================================

加载API:

using UnityEngine.AddressableAssets;

using UnityEngine.ResourceManagement.AsyncOperations;

AsyncOperationHandle:句柄(异步加载时的控制器,里面记录了加载的所有信息,包括状态、进度等)

当包中有多个相同的key或者label时,返回的是第一个

//根据key加载一个资源(这个key可以是AddressableName也可以是label标签)

Addressables.LoadAssetAsync("key");

//根据key实例化一个资源(这个key可以是AddressableName也可以是label标签)

Addressables.InstantiateAsync("key");

//根据key返回多个资源(这个key可以是AddressableName也可以是label标签)

Addressables.LoadAssetsAsync(“key”);

//根据key加载场景(这个key可以是AddressableName也可以是label标签)

Addressables.LoadSceneAsync(“key”)

卸载API:

Addressables.Release()参数是句柄,加载场景也是用的这个句柄

Addressables.ReleaseInstance()参数是通过Addressables.InstantiateAsync返回的实例化对象

该方法会销毁该物体

一些简单的工具方法:

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

usingUnityEngine.AddressableAssets;

usingUnityEngine.ResourceManagement.AsyncOperations;

usingUnityEngine.ResourceManagement.ResourceProviders;

usingUnityEngine.SceneManagement;

public class AddressableUtil

{

/// 

///Addressable加载资源

/// 

/// 资源类型

/// 

/// 

public voidLoadObjRun(stringkey, LoadObj run =null)

{

Addressables.LoadAssetAsync(key).Completed += (obj) =>

{

run?.Invoke(obj.Result);

Addressables.Release(obj);

};

}

/// 

///返回操作句柄,自己控制(PercentComplete:完成百分比)

/// 

/// 

/// 

publicAsyncOperationHandle LoadSceneRun(stringkey)

{

returnAddressables.LoadSceneAsync(key);

}

/// 

///Addressable加载场景

/// 

/// 

/// 

public voidLoadSceneRun(stringkey, LoadObj run =null)

{

Addressables.LoadSceneAsync(key).Completed += (obj) =>

{

run?.Invoke(obj.Result.Scene);

Addressables.Release(obj);

};

}

public delegate void LoadObj(T obj);

}

public static class KUOZ

{

/// 

///销毁释放Addressable实例化的游戏对象

/// 

/// 

public static voidReleaseInstance(thisGameObject obj)

{

Addressables.ReleaseInstance(obj);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值