1. 运行时表示
在winS.Unity.ResourceManagement中,每个在运行时需要加载来使用的资源 (Prefab,AudioClip,Sprite等) 都必须拥有其运行时表示。 为此,您必须为这些资源创建对应的运行时。
在本例中,我们用一个名为 MyResources 的静态类来负责管理这些运行时表示:
public class MyResources
{
}
单个资源的资源表示
扩展包中的RuntimeResource
用于表示单个资源。
它有众多派生类来表示不同类型的资源,其中winS.Unity.ResourceManagement.PrefabResource
用于表示预设类型的单个资源。
假设项目中有一个名为 Player 的预设,则我们在 MyResources 下为它定义字段,如以下代码:
using winS.Unity.ResourceManagement;
public class MyResources
{
public static readonly PrefabResource player = new PrefabResource("Player");
}
在上述代码中,PrefabResource 是该预设的运行时表示,构造函数中的字符串表明了此资源的 Addressables 地址。
多个资源的资源表示
在项目中除了单个资源,我们还可能拥有多个同类资源,例如有3个敌对类型的预设,分别为 Skeleton、Slime 和 Bat。 显然,我们不能像定义 Player 一样来分别定义它们。
此时,我们需要用一组运行时资源表示。在扩展包中,RuntimeResources
用于表示同类型的资源组。
与 RuntimeResource 类似,RuntimeResources 也拥有大量派生类。其中,winS.Unity.ResourceManagement.PrefabResources
用于表示预设类型的资源组。
我们在 MyResources 下为这些敌对预设定义资源组,修改后的代码如下:
using winS.Unity.ResourceManagement;
public class MyResources
{
public static readonly PrefabResource player = new PrefabResource("Player");
public static readonly PrefabResources enemy = new PrefabResources("Enemy/");
}
在上述代码中,敌对预设的资源拥有统一前缀 Enemy/,则它们的 Addressables 地址分别为:
- Enemy/Skeleton;
- Enemy/Slime;
- Enemy/Bat;
截止目前,我们已经确定了这些资源在运行时的地址。
需要注意的是,这些地址都是 "虚拟" 的,截止目前,它们没有任何实体,这意味着,任何尝试加载的操作都会导致错误。
在下一小节中,我们将在编辑器下创建这些资源的编辑器表示来赋予它们实体。