@^@ 之前做项目曾经遇到一个问题,ui美术给了我大量的序列帧图片,当时不知道如何快速批量地将资源赋值(拖拽)到inspector面板上,手动拖拽显然非常痛苦。当然有一种动态加载资源的方法 Resources.LoadAll或者 Resources.Load,但是我想在游戏未运行前提前把图片拖拽到inspector面板上,并且在我更换资源的时候也能够通过一键解决,后面我找到了以下的解决方案。
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搞定了
大功告成。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。