public override void OnInspectorGUI()
        {
            if (inspector.OnInspectorGUI())
            {
                rq.Optimize();
            }
            showZ = EditorGUILayout.BeginToggleGroup("Z Transform", showZ);
            if (showZ)
            {
                EditorGUI.indentLevel += 2;
                EditorGUILayoutUtil.FloatField("Z Base", ref rq.zBase);
                EditorGUILayoutUtil.FloatField("Z Scale", ref rq.zScale);
                EditorGUI.indentLevel -= 2;
            }
            EditorGUILayout.EndToggleGroup();
            Dictionary <string, bool> nameSet = new Dictionary <string, bool>();
            Dictionary <int, bool>    rqSet   = new Dictionary <int, bool>();

            foreach (RenderQueueElement e in rq.row)
            {
                if (string.IsNullOrEmpty(e.name))
                {
                    continue;
                }
                if (nameSet.ContainsKey(e.name))
                {
                    EditorGUILayout.HelpBox("Duplicate " + e.name, MessageType.Error);
                    break;
                }
                else if (rqSet.ContainsKey(e.value))
                {
                    EditorGUILayout.HelpBox("Duplicate " + e.value, MessageType.Error);
                    break;
                }
                nameSet.Add(e.name, true);
                rqSet.Add(e.value, true);
            }
        }