Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // If icon is NULL resets the objects to their default icon
- static int SetObjectsIcons(List<Object> objects, Texture2D icon)
- {
- int totApplied = 0;
- MethodInfo setIconForObject = typeof(EditorGUIUtility).GetMethod("SetIconForObject", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
- MethodInfo getIconForObject = typeof(EditorGUIUtility).GetMethod("GetIconForObject", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
- Assembly unityEditorAssembly = typeof(Editor).Assembly;
- MethodInfo copyMonoScriptIconToImporters = unityEditorAssembly.GetType("UnityEditor.MonoImporter").GetMethod("CopyMonoScriptIconToImporters", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
- foreach (Object obj in objects) {
- Texture2D currIcon = getIconForObject.Invoke(null, new object[] { obj }) as Texture2D;
- if (currIcon == icon) continue;
- totApplied++;
- setIconForObject.Invoke(null, new object[] { obj, icon });
- if (obj is MonoScript) copyMonoScriptIconToImporters.Invoke(null, new object[] { obj });
- }
- return totApplied;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement