Unity资源加载

Unity资源加载

编辑器内加载AssetDatabase

加载

Material mat = AssetDatabase.LoadAssetAtPath(“资源位置”,typeof(Material))as Material;

修改

mat.color = Color.white;

卸载

Resources.UnloadAsset(mat);

创建资源

AssetDatabase.CreateAsset(mat,“创建后新的地址”);

修改并保存已有Asset

EditorUtility.SetDirty(mat);此资源已改动,告诉编译器需保存

AssetDatabase.SaveAssets();保存所有资源

运行时Resources

创建文件夹,不要创建两个,不然会出错

加载

GameObject 对象名 = Resources.Load<>(“文件位置,不需要后缀”);

Object.Instantiate(对象名);(实例化)

卸载

Resources.UnloadAsset(需要卸载的文件名);不仅是此资源,还有从此资源克隆出去的所有资源都会被卸载;

两种情况:

是不是gameObject,如果是则不能通过Resources.UnloadAsset卸载的,否则会报错

若是预制体则在编辑器下是没办法的

gameobject需要用Destroy();,两种情况:

直接加载:用DestroyImmediate(名字,true);不仅是此资源,还有从此资源克隆出去的所有资源都会被卸载;

克隆出来的gameobject可以用Destroy();卸载

Resources.UnloadUnusedAssets();会判断此资源是否被引用或使用,如果没有被使用则释放(官方推荐,不过卸载过程较漫长)

释放

Assetbundle自己管理资源,运行方式是将每一个Assets打成资源包的形式,可以做资源的更新

制作AssetBundleBuildPipeline.BuildAssetBundles

在编辑器下运行,因此将其放在Editor文件夹下

using Unityeditor;
public class Build
{
    [MenuItem("Publish/Buildle")]
   public static void BuildBundle()
   {
       BuildPipeline.B
       
   }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UnityResources是Unity中用于加载资源的类。它可以加载各种类型的资源,包括图片、音频、视频、模型等。使用UnityResources加载资源非常简单,只需要指定资源的路径即可。例如,如果要加载一个名为“myImage”的图片,可以使用以下代码: Texture2D myTexture = Resources.Load<Texture2D>("myImage"); 这将在Resources文件夹中查找名为“myImage”的图片,并将其加载到Texture2D对象中。需要注意的是,Resources文件夹必须位于Assets文件夹的根目录下,否则无法正确加载资源。 ### 回答2: Unity 是一款颇受欢迎的游戏引擎,而 UnityResources 怎么加载资源呢?通俗来讲,UnityResources 是 Unity 自带的一种加载资源的方式,它可以自动加载 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中,要加载资源通常需要用到unityresources。 unityresources是一个二进制文件格式,它用于存储Unity中各种资源,例如模型、纹理、音频等,这些资源会被编译成一个或多个unityresources文件,以便于在游戏运行时快速加载和使用。 在Unity加载unityresources,通常需要使用Resource.Load或Resources.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.Load或Resources.Load函数加载unityresources文件时,要指定正确的资源路径和资源名称,否则将无法加载资源。此外,由于unityresources文件是二进制格式,因此可以使用校验和等方法来确保其完整性,从而避免误操作带来的损失。 总之,unityresources是Unity中非常重要的资源加载机制,正确的使用方法和技巧能够大大提高游戏的性能和质量。因此,开发者应该仔细学习和掌握相关知识,并根据实际需求灵活运用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值