记录一下Addressables-Sample项目中的脚本和学习的笔记,主要是熟悉API及其使用方式.方便日后工作查询.
项目地址:
Unity官方教程
Basic AssetReference
1.1 Scenes/BasicReference
实例化的AssetReference引用,并销毁
脚本 BasicReference.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement;
public class BasicReference : MonoBehaviour
{
public AssetReference baseCube;
public void SpawnThing()
{
baseCube.InstantiateAsync();
}
}
脚本 SelfDestruct.cs
using UnityEngine;
using UnityEngine.AddressableAssets;
public class SelfDestruct : MonoBehaviour {
public float lifetime = 2f;
void Start()
{
Invoke("Release", lifetime);
}
void Release()
{
if (!Addressables.ReleaseInstance(gameObject))
Destroy(gameObject);
}
}
- 创建的对象将被Addressables.ReleaseInstance销毁,即使它们不是以这种方式创建的。从版本0.8开始,这将抛出一个警告,但仍然会删除资源。在将来,我们的目的是使这种方法不破坏资产,或打印警告。相反,它将返回一个布尔值,以便您可以在需要时手动销毁。
API讲解
1.引用
public AssetReference baseCube;
AssetReference 是addressable asset的引用.AssetReference有一个Asset属性
public virtual Object Asset { get; }
Asset是加载的资产。此值仅在LoadAssetAsync返回的AsyncOperationHandle完成后设置。如果只调用instantialeasync,则不会设置它。如果调用release,它将被设置为null。
2.加载
baseCube.InstantiateAsync();是基本异步加载,会返回一个AsyncOperationHandle,里面包含了加载过程中的所有信息.
3.延时调用
Invoke是MonoBehaviour类中的方法。还有一个类似的InvokeRepeating方法.
CancelInvoke取消定时器.
4.销毁
void Release()
{
if (!Ad