美文网首页
[Unity]资源加载Resources.Load

[Unity]资源加载Resources.Load

作者: 汴城码农 | 来源:发表于2022-04-22 12:43 被阅读0次

    为了降低耦合度,引入了资源加载。
    就是将做好了的游戏对象预制体,在脚本中通过加载资源路径的方式动态实例化对象,有别于拖线形式。

    eg:拖线形式

    public GameObject xxxPrefab;
    GameObject.Instantiate(xxxPrefab, position, Quaternion.identity);
    

    此外还需要将做好的游戏预制件,拖到相应的检视面板显示框中。
    此方式加大了耦合度,不易管理,易出错易丢失。

    eg2:Resources.Load

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

    步骤:

    1,在工程文件中,Asset中创建一个Resources文件夹(名称不能错),将你需要的资源放入此文件夹中
    WechatIMG53.png
    2,将游戏对象的相对路径,赋值给一个字符串常量
    public const string RESOURCES_ASTEROID01_PATH = "Prefabs\Bullt_1";
    
    3,声明游戏对象变量,初始化游戏对象资源,通过Resources.Load加载路径找到赋值给gameObject
    GameObject buttet;
    private void Awake()
    {
      bullet = Resources.Load(MyConst.RESOURCES_ASTEROID01_PATH) as GameObject;
    }
    

                string prefabsPath = @"Prefabs\Bullet_1";//prefab在Resources下的路径,不需要后缀
                var ob = Resources.Load<GameObject>(prefabsPath);//加载GameObject
                GameObject bullet = Instantiate(ob, rigidbody2D.position, Quaternion.identity);
                //GameObject bullet = GameObject.Instantiate(go);//创建GameObject,但不确定位置
    

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

    public static class MyConst
    {
      public const string RESOURCES_ASTEROID01_PATH = "Prefabs\Bullt";
      public const string RESOURCES_ASTEROID01_PATH = "Prefabs\Bullt_1";
    }
    

    在其他类中直接调取该类中的字符串常量的资源路径
    在其他类中,调取,声明游戏对象,赋值,当然还有其他自愿的方式,暂不举例

    相关文章

      网友评论

          本文标题:[Unity]资源加载Resources.Load

          本文链接:https://www.haomeiwen.com/subject/ggcjfrtx.html