Unity 从Resources中动态加载Sprite图片

 public  Sprite LoadSourceSprite(string relativePath)
    {
        //Debug.Log("relativePath=" + relativePath);
        //把资源加载到内存中
        Object Preb = Resources.Load(relativePath, typeof(Sprite));
        Sprite tmpsprite = null;
        try
        {
            tmpsprite = Instantiate(Preb) as Sprite;
        }
        catch ( System.Exception ex )
        {

        }

        //用加载得到的资源对象,实例化游戏对象,实现游戏物体的动态加载
        return tmpsprite;
        //return Resources.Load(relativePath, typeof(Sprite)) as Sprite;
    }
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Unity可以使用Resources.Load()方法来加载图片资源。 具体步骤如下: 1. 在Unity创建一个文件夹,用来存放图片资源。 2. 将需要加载图片资源放到该文件夹。 3. 在代码使用Resources.Load()方法来加载图片资源,例如: Sprite sprite = Resources.Load<Sprite>("文件夹名/图片名"); 其SpriteUnity图片类型,可以根据需要替换成其他类型。 4. 加载完成后,可以将图片显示在场景,例如: GameObject imageObject = new GameObject("Image"); Image image = imageObject.AddComponent<Image>(); image.sprite = sprite; 以上就是Unity加载图片资源的基本步骤。 ### 回答2: 在Unity开发加载图片资源是一个非常常见的操作。Unity提供了多种方式来加载图片资源:使用Resources目录、使用AssetBundles、使用外部URL等等。在这里,我们将重点介绍使用Resources目录加载图片资源。 Resources目录是Unity一个默认的文件夹,它用于存放所有可以被实例化到场景的资源。而所有位于Resources目录下的资源都可以用Resources.Load()方法来进行加载加载图片资源的代码如下: ```csharp public GameObject targetObject; //目标物体 public string imagePath; //图片路径 void Start() { //加载图片资源 Sprite sprite = Resources.Load<Sprite>(imagePath); //将图片设置到目标物体上 targetObject.GetComponent<Image>().sprite = sprite; } ``` 在上面的代码,我们首先定义了一个目标物体(targetObject)和一张图片的路径(imagePath)。然后,在Start函数,我们使用Resources.Load()方法加载图片资源。通过使用泛型方法,我们指定该资源的类型为Sprite。最后,我们将加载图片设置到目标物体上,通过GetComponent方法获取目标物体上的Image组件,再将Sprite类型图片设置到Image组件的sprite属性。 需要注意的是,在使用Resources.Load()方法加载图片资源时,我们需要传入资源路径(需要带有后缀名)。同时,由于Resources目录属于Unity的特殊文件夹,所以路径不需要使用“Assets/”作为前缀。 另外,如果我们需要在运行时加载多张图片资源,我们可以先通过Resources.LoadAll()方法加载整个目录下的所有资源,然后再使用foreach语句遍历加载后的资源数组。代码如下: ```csharp void Start() { //加载目录下的所有图片资源 Sprite[] sprites = Resources.LoadAll<Sprite>(imageDirectory); //遍历所有加载图片资源 foreach (Sprite sprite in sprites) { //创建新的UI物体 GameObject newObj = Instantiate(uiPrefab, uiParent.transform); //设置图片 newObj.GetComponent<Image>().sprite = sprite; } } ``` 在上面的代码,我们通过Resources.LoadAll()方法加载指定目录下的所有Sprite类型的资源。然后,我们使用foreach语句遍历所有加载后的Sprite资源数组。 接下来,我们创建了一个新的UI物体,并将其作为子物体添加到了指定的父物体下。最后,我们将遍历到的Sprite类型资源设置到新创建的UI物体的Image组件显示出来。 总之,通过使用Resources目录,我们轻松可以在Unity加载图片资源。无论是单个图片还是整个目录下的所有图片,只需要简单地使用Resources.Load()或Resources.LoadAll()方法,就可以实现对图片资源的加载。 ### 回答3: Unity是一个非常强大的游戏开发引擎,它提供了许多可以帮助游戏开发者快速实现游戏功能的工具和资源。其,对于游戏开发者来说,加载图片资源是非常常见的操作,因为游戏几乎都需要使用到图片。那么,Unity如何加载图片资源呢? 首先,Unity图片资源可以通过两种方式加载:一种是从本地磁盘加载,另一种是从网络加载。以下分别介绍两种加载方式的实现方法: 1. 从本地加载图片资源 Unity加载本地图片资源的方式非常简单,只需要使用Unity提供的Resources.Load函数即可完成。这个函数的用法非常简单,只需要传入一个string类型的参数,表示要加载图片的路径和名称即可。例如,要加载一个位于Assets/Resources/Textures目录下的图片,可以使用以下代码: ```csharp Texture2D texture = Resources.Load<Texture2D>("Textures/yourTextureName"); ``` 这段代码表示从Assets/Resources/Textures/yourTextureName路径下加载一张名为yourTextureName的图片,并将其转换成Texture2D类型的变量texture。 2. 从网络加载图片资源 如果需要从网络加载图片资源,则需要使用UnityWebRequest类。该类可以发送HTTP请求并获取服务器返回的数据。以下是一个从网络加载图片的示例: ```csharp UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.example.com/yourImage.png"); yield return www.SendWebRequest(); if (www.result == UnityWebRequest.Result.Success) { Texture yourTexture = ((DownloadHandlerTexture)www.downloadHandler).texture; } ``` 这段代码表示从http://www.example.com/yourImage.png地址下载一张图片,并将其转换为Texture类型。 总结来说,Unity加载图片资源非常简单,只需要使用Resources.Load函数或UnityWebRequest类即可完成。无论是从本地还是从网络加载,只要我们提供了正确的路径和名称,就可以在游戏使用这些图片资源了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值