Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEditor;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System;
- public class RenderQueueSetting : EditorWindow {
- public int max = 3600;
- bool orderToggle = false;
- // Use this for initialization
- [MenuItem("HoneySelect/SetRenderQueues")]
- static void Init ()
- {
- RenderQueueSetting window = (RenderQueueSetting)EditorWindow.GetWindow(typeof(RenderQueueSetting));
- window.Show();
- }
- // Update is called once per frame
- void OnGUI() {
- GUILayout.Label("Set Render Queues", EditorStyles.boldLabel);
- max = EditorGUILayout.IntField("Max Render Queue", max);
- orderToggle = EditorGUILayout.Toggle("Descending", orderToggle);
- if (GUILayout.Button("Order"))
- SetQueues(max, orderToggle);
- }
- static void SetQueues(int maxqueue, bool order)
- {
- int maxv = maxqueue;
- GameObject[] selObj = Selection.gameObjects;
- foreach (var obj in Selection.gameObjects.OrderByWithDirection(go => go.name, order))
- {
- SetRenderQueue queueComp = obj.AddComponent<SetRenderQueue>();
- System.Type ourType = queueComp.GetType();
- FieldInfo fi = ourType.GetField("m_queues", BindingFlags.NonPublic | BindingFlags.Instance);
- //Debug.Log(fi);
- fi.SetValue(queueComp, new int[] { maxv });
- maxv = maxv - 1;
- }
- }
- }
- public static class ExtensionMethods
- {
- public static IOrderedEnumerable<TSource> OrderByWithDirection<TSource, TKey>
- (this IEnumerable<TSource> source,
- Func<TSource, TKey> keySelector,
- bool descending)
- {
- return descending ? source.OrderByDescending(keySelector)
- : source.OrderBy(keySelector);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement