【Unity】资源加载

Unity 资源加载

资源分类:

声音:AudioClip, 声音在unity中,都叫做音频剪辑(AudioClip),分为长声音和音效,但都是AudioClip
视频:MoveTexture, 用来显示视频,
文本: TextAsset,主要为:json,xml,其它文本文件
图片: Texture,Texture2D 两者都属性贴图,就是我们说的图片,
Sprite 也是图片,是能过Texture转换而来的图片,
Texture和Sprite分别对应UI中的RawImage:Texture,和Image:Sprite
AssetBundle: 将以上所有内容打包在一起,形成一个AssetBundle包,简称ab包,

加载方式:

本地加载:不能加载ab包
Object obj = Resources.load(“资源名称或路径下的名字 不需要扩展名”);
T t1 = Resources.load(“资源名称或路径下的名字 不需要扩展名”);表示加载Resources目录下指定的资源
Object[] objs = Resources.loadAll(“资源名称或路径下的名字 不需要扩展名”);

远程加载服务器内容,也可以加载本地,可加载ab包
1:WWW w = new WWW(远程地址)
2:WWW w2 = WWW.LoadFromCacheOrDownload(远程地址,版本号);
LoadFromCacheOrDownload:从远程或本地缓存加载,每次加载时,会先到本地的字典中去查找那就的版本号有没有,
如果有,就把存在本地版本号中的内容取出并加载出来,如果没有就从远程加载,加载完以后就保存到本地字典中,
用版本号做为键,加载的内容做为值。
3:UnityWebRequest:加载远程ab包

AssetBundle:称为ab包,是unity的一种打包,和解压包的技术
ab.Unload(false),当资源从ab包中解压完以后,表示从ab中释放加载的内容,但是该内容在内在还存在,
ab.Unload(true),表示把ab中的内容全部从电脑中删除,这样游戏中使用到的资源就会报错,程序崩溃,
所以不建议使用。在游戏退出时,可以考虑使用。
ab包也可以从本地加载:
AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + “/js.assetbundle”);通过路径加载
AssetBundle ab2 = AssetBundle.LoadFromMemory(byte[]);加载指定的字节数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UnityResourcesUnity中用于加载资源的类。它可以加载各种类型的资源,包括图片、音频、视频、模型等。使用UnityResources加载资源非常简单,只需要指定资源的路径即可。例如,如果要加载一个名为“myImage”的图片,可以使用以下代码: Texture2D myTexture = Resources.Load<Texture2D>("myImage"); 这将在Resources文件夹中查找名为“myImage”的图片,并将其加载到Texture2D对象中。需要注意的是,Resources文件夹必须位于Assets文件夹的根目录下,否则无法正确加载资源。 ### 回答2: Unity 是一款颇受欢迎的游戏引擎,而 UnityResources 怎么加载资源呢?通俗来讲,UnityResourcesUnity 自带的一种加载资源的方式,它可以自动加载 Unity 项目中 Assets 文件夹下的资源。具体来说,可以使用 Resources.Load 方法来动态加载Unity 资源。 首先,需要在 Resources 文件夹下创建相应的文件夹并放入资源,然后就可以在代码中通过 Resources.Load加载这些资源。具体代码如下: ```c# //加载预制件 GameObject prefab = Resources.Load("Prefabs/Cube") as GameObject; //实例化预制件 Instantiate(prefab, transform.position, Quaternion.identity); //加载文本 TextAsset textAsset = Resources.Load("Texts/MyText") as TextAsset; //在控制台输出文本 Debug.Log(textAsset.text); //加载纹理 Texture texture = Resources.Load("Textures/MyTexture") as Texture; //给物体添加材质 gameObject.GetComponent<Renderer>().material.mainTexture = texture; //加载音频 AudioClip audioClip = Resources.Load("Audios/MyAudio") as AudioClip; //播放音频 AudioSource.PlayClipAtPoint(audioClip, Camera.main.transform.position); ``` 需要注意的是,使用 Resources.Load 方法加载资源并不是最优的方式,因为它需要在运行时动态加载资源,会造成一定的性能损失。而 AssetBundle 是一个更好的选择。但是在某些场景下,比如需要经常切换场景时,使用 Resources.Load 会更容易管理和维护。 除了 Resources.Load 方法,Unity 还提供了其他的资源加载方式,比如 AssetDatabase 和 AssetBundle 等,针对不同的情况可以选择不同的加载方式。例如,AssetBundle 可以在不同的场景之间共享资源,提高资源的复用性。 总之,UnityResources 加载资源是一个灵活多变的方式,可以根据需要选择不同的加载方式。需要注意的是,在开发过程中要尽可能提高资源加载效率和减少资源的浪费,以保证应用程序的稳定性和流畅性。 ### 回答3: Unity是一款非常流行的游戏引擎,它的资源加载机制非常重要。在Unity中,要加载资源通常需要用到unityresourcesunityresources是一个二进制文件格式,它用于存储Unity中各种资源,例如模型、纹理、音频等,这些资源会被编译成一个或多个unityresources文件,以便于在游戏运行时快速加载和使用。 在Unity加载unityresources,通常需要使用Resource.LoadResources.Load函数。这两个函数都可以加载unityresources文件中的资源,但是它们的使用方式略有不同。 Resource.Load函数是一种直接加载unityresources中指定资源的方法。它的用法比较简单,只需要传入资源路径即可: ``` Resource.Load("路径/资源名"); ``` Resources.Load函数则需要先加载unityresources文件,然后再从其中获取指定资源。具体用法如下: ``` var resFile = Resources.Load("路径/资源名") as ResourceFile; var resObj = resFile.LoadAsset("资源名"); ``` 以上代码首先通过Resources.Load函数加载指定的unityresources文件,然后通过ResourceFile.LoadAsset方法获取指定资源。 需要注意的是,使用Resource.LoadResources.Load函数加载unityresources文件时,要指定正确的资源路径和资源名称,否则将无法加载资源。此外,由于unityresources文件是二进制格式,因此可以使用校验和等方法来确保其完整性,从而避免误操作带来的损失。 总之,unityresourcesUnity中非常重要的资源加载机制,正确的使用方法和技巧能够大大提高游戏的性能和质量。因此,开发者应该仔细学习和掌握相关知识,并根据实际需求灵活运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值