unity3d将Resources资源批量赋值(拖拽到)Inspector面板上

@^@ 之前做项目曾经遇到一个问题,ui美术给了我大量的序列帧图片,当时不知道如何快速批量地将资源赋值(拖拽)到inspector面板上,手动拖拽显然非常痛苦。当然有一种动态加载资源的方法 Resources.LoadAll或者 Resources.Load,但是我想在游戏未运行前提前把图片拖拽到inspector面板上,并且在我更换资源的时候也能够通过一键解决,后面我找到了以下的解决方案。

1.新建一个脚本文件 EditorLoader.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class EditorLoader : MonoBehaviour
{
    [Header("sprite渲染组件")]
    public Sprite [] sprites;
    [Header("Resources下的路径")]
    public string resPath;
    [Header("是否赋值了")]
    public bool isGenerate = false;
    void Update()
    {
        if (isGenerate)
        {
            // 重新设置sprites数组的长度,
            // 不然当资源的数量少于上次的资源的时候sprites
            // 超出的数组长度会变成空值
            sprites = new Sprite[0];
            // 赋值给sprites
            sprites = Resources.LoadAll<Sprite>(resPath);
            // 当点击isGenerate时,立即设为false,以保证每次点击只执行一次
            isGenerate = false;
        }
    }
}

2.将EditorLoader.cs拖拽到Main Camera组件上

 

3.将资源导入Resources文件夹内

 4.在inspector面板Res Path输入框内输入Resources下UI的路径,然后点击Is Generate即可,无论资源如何更改,输入路径,点击Is Generate搞定了

 大功告成。

猜你喜欢

转载自www.cnblogs.com/mmcike/p/12507676.html