Unity 编辑器开发实战【Model Importer】- 如何多选设置模型导入设置中的Material Location

举报
CoderZ1010 发表于 2022/09/25 06:39:07 2022/09/25
【摘要】 模型的Import Settings中Materials部分是不支持多选进行编辑的,如图所示,如果我们选中多个模型,编辑器中会提示Material Editing is not supported on multiple selection. 假如我们往工程中导入了大量模型,其默认的Location设置为Use Embedded ...

模型的Import Settings中Materials部分是不支持多选进行编辑的,如图所示,如果我们选中多个模型,编辑器中会提示Material Editing is not supported on multiple selection.

假如我们往工程中导入了大量模型,其默认的Location设置为Use Embedded Materials,而我们想要将其设为Use External Materials(Legacy),就需要依次选中模型、设置Location,比较耗时耗力。

本文实现的工具可以支持多选模型进行Material Location设置,如图所示:

代码如下:


  
  1. using UnityEngine;
  2. using UnityEditor;
  3. namespace SK.Framework
  4. {
  5. public class ModelImportSettings : EditorWindow
  6. {
  7. private ModelImporterMaterialLocation location;
  8. [MenuItem("SKFramework/Tools/Model Import Settings")]
  9. private static void Open()
  10. {
  11. GetWindow<ModelImportSettings>("Model Import Settings").Show();
  12. }
  13. private void OnGUI()
  14. {
  15. GUILayout.BeginHorizontal();
  16. {
  17. GUILayout.Label("Location");
  18. location = (ModelImporterMaterialLocation)EditorGUILayout.EnumPopup(location);
  19. }
  20. GUILayout.EndHorizontal();
  21. if (Selection.gameObjects.Length == 0) return;
  22. GUILayout.FlexibleSpace();
  23. if (GUILayout.Button("Apply"))
  24. {
  25. for (int i = 0; i < Selection.gameObjects.Length; i++)
  26. {
  27. var obj = Selection.gameObjects[i];
  28. string path = AssetDatabase.GetAssetPath(obj);
  29. ModelImporter importer = AssetImporter.GetAtPath(path) as ModelImporter;
  30. if (importer != null)
  31. {
  32. importer.materialLocation = location;
  33. }
  34. }
  35. }
  36. }
  37. private void OnSelectionChange()
  38. {
  39. Repaint();
  40. }
  41. }
  42. }

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/123656770

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。