700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Unity编辑器扩展实践】 查找所有引用该图片的预制体

【Unity编辑器扩展实践】 查找所有引用该图片的预制体

时间:2024-01-10 11:56:08

相关推荐

【Unity编辑器扩展实践】 查找所有引用该图片的预制体

上一篇Unity编辑器扩展实践二、通过代码查找所有预制中已经查到到所有的预制体了。

然后我们就可以用这些预制体做一些其他的操作了,比如查找该预制的资源引用。可以直接遍历预制,找到预制里面的所有Image组件,然后比较Sprite属性的值,看是否和检测的资源相同。

Prefabs.Clear();if (m_sprite == null) return;EditorUtility.DisplayCancelableProgressBar("查找图集", "查找图集中...", 0);List<Image> aorImages;List<GameObject> _prefabList = GetAllPrefabByAssetDatabase("Assets/Resources/TSUprefabs");for (int i = 0; i < _prefabList.Count; i++){if (_prefabList[i] == null){continue;}aorImages = new List<Image>(_prefabList[i].GetComponentsInChildren<Image>());if (aorImages == null|| aorImages.Count<=0){continue;}foreach (var image in aorImages){if (image.sprite==null){continue;}if (image.sprite.Equals(m_sprite)){Prefabs.Add(_prefabList[i]);break;}}bool _cancel = EditorUtility.DisplayCancelableProgressBar("查找图集", "查找图集中("+i+"/"+ (float)_prefabList.Count+"...", i / (float)_prefabList.Count);if (_cancel){break;}}EditorUtility.ClearProgressBar();

同理可以用这个方法给想要的预制体替换图片,只需要找到对应的预制组件,将图片复制给Image组件即可。

查找图片的引用可以用这个方法,其他资源同理。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。