找回密码
 立即注册
查看: 319|回复: 0

[Unity]资源加载Resources.Load

[复制链接]
发表于 2022-4-22 13:32 | 显示全部楼层 |阅读模式
为了降低耦合度,引入了资源加载。
就是将做好了的游戏对象预制体,在脚本中通过加载资源路径的方式动态实例化对象,有别于拖线形式。
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开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 14:33 , Processed in 0.071231 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表