Unity:资源加载 Resources.Load

为了降低耦合度,引入了资源加载,

就是将做好的游戏对象预制体,在脚本中通过加载资源路径的方式加载,有别于拖线形式.


eg:拖线形式

public GameObject  xxPrefab;
GameObject.Instantiate(xxPrefab, _pos, Quaternion.identity); //创建行星​

此外还需要将做好的游戏预制体拖到相应的检视面板显示框中.

此方式,加大了耦合度,不易管理,易出错,易丢失.

eg2:Resources.Load​加载

此方式是以加载游戏对象(预制体)的相对路径,来查找和加载相应资源的一种方式.

步骤:

1,在工程文件,Asset中创建一个Rsource文件夹(名字不能错!),将你需要的资源放入此文件夹中.


2.将游戏对象的相对路径,赋值给一个字符串常量

public const string RESOURCES_ASTEROID01_PATH = "Prefabs/Asteroid_01";

3.声明游戏对象变量,初始化游戏对象资源,通过Resources.Load加载路径找到赋值给gameobject


  GameObject Asteroid01;
    private void Awake()
     {
         //赋值行星预制
         Asteroid01 = Resources.Load(MyConst.RESOURCES_ASTEROID01_PATH) as GameObject; 
     }​

----------------------------------------------------------------------------------------------------------------------------------------------

通常,将资源路径,新建一个class,单独存储,如:

public static class MyConst 
{
    public const string RESOURCES_PATH = "Prefabs/Bullet";
    public const string RESOURCES_ASTEROID01_PATH = "Prefabs/Asteroid_01";
    public const string RESOURCES_ASTEROID02_PATH = "Prefabs/Asteroid_02";
    public const string RESOURCES_ASTEROID03_PATH = "Prefabs/Asteroid_03";
    public const string RESOURCES_ENEMY_PATH = "Prefabs/Enemy";
    public const string RESOURCES_BULLET_ENEMY_PATH = "Prefabs/Bullet_Enemy";
}


在其他类中直接调取该类中的字符串常量的资源路径​ 

在其他类中,调取,声明游戏对象,赋值,当然还有 加载其他自愿的方式,暂不举例,以后再添加.


    GameObject enemy;
    private void Awake()
    {
        enemy = Resources.Load(MyConst.RESOURCES_ENEMY_PATH) as GameObject;
    }


猜你喜欢

转载自blog.csdn.net/u013509878/article/details/80060108