跳到主要内容

1. 运行时表示

在winS.Unity.ResourceManagement中,每个在运行时需要加载来使用的资源 (Prefab,AudioClip,Sprite等) 都必须拥有其运行时表示。 为此,您必须为这些资源创建对应的运行时。

在本例中,我们用一个名为 MyResources 的静态类来负责管理这些运行时表示:

public class MyResources
{
}

单个资源的资源表示

扩展包中的RuntimeResourcejump icon用于表示单个资源。

它有众多派生类来表示不同类型的资源,其中winS.Unity.ResourceManagement.PrefabResourcejump icon用于表示预设类型的单个资源。 假设项目中有一个名为 Player 的预设,则我们在 MyResources 下为它定义字段,如以下代码:

using winS.Unity.ResourceManagement;

public class MyResources
{
public static readonly PrefabResource player = new PrefabResource("Player");
}

在上述代码中,PrefabResource 是该预设的运行时表示,构造函数中的字符串表明了此资源的 Addressables 地址。

多个资源的资源表示

在项目中除了单个资源,我们还可能拥有多个同类资源,例如有3个敌对类型的预设,分别为 SkeletonSlimeBat。 显然,我们不能像定义 Player 一样来分别定义它们。

此时,我们需要用一组运行时资源表示。在扩展包中,RuntimeResourcesjump icon用于表示同类型的资源组。

RuntimeResource 类似,RuntimeResources 也拥有大量派生类。其中,winS.Unity.ResourceManagement.PrefabResourcesjump icon用于表示预设类型的资源组。

我们在 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;

截止目前,我们已经确定了这些资源在运行时的地址。

需要注意的是,这些地址都是 "虚拟" 的,截止目前,它们没有任何实体,这意味着,任何尝试加载的操作都会导致错误。

在下一小节中,我们将在编辑器下创建这些资源的编辑器表示来赋予它们实体。