Exemplo n.º 1
0
        public override void OnInspectorGUI()
        {
            varInspector.OnInspectorGUI();
            if (arrDrawer == null && sprite.sprite != null && sprite.sprite.atlas != null)
            {
                string[] sprList = sprite.sprite.atlas.GetListOfSprites().ToArray();
                arrDrawer = new ArrayDrawer <SpriteAnimInfo>(sprite, "anim", new SpriteAnimInfoItemDrawer(sprList));
                arrDrawer.createDefaultValue = () => new SpriteAnimInfo();
                arrDrawer.addSelected        = false;
            }
            if (arrDrawer == null)
            {
                return;
            }
            if (arrDrawer.Draw(ReorderableListFlags.ShowIndices))
            {
                EditorUtil.SetDirty(target);
            }

            if (sprite.anim != null && sprite.anim.Length == 1 && GUILayout.Button("Add all"))
            {
                string firstName = sprite.anim[0].name;
                string baseName  = firstName.DetachSuffix();
                string separator = firstName.Length == baseName.Length? "": firstName[baseName.Length].ToString();
                if (char.IsDigit(separator[0]))
                {
                    separator = "";
                }
                int          i    = 1;
                string       name = baseName.AddSuffix(separator, i);
                UISpriteData s    = sprite.sprite.atlas.GetSprite(name);
                while (s != null)
                {
                    arrDrawer.Add(new SpriteAnimInfo(name, sprite.anim[0].delay));
                    i++;
                    name = baseName.AddSuffix(separator, i);
                    s    = sprite.sprite.atlas.GetSprite(name);
                }
                EditorUtil.SetDirty(sprite);
            }
            if (EditorGUIUtil.FloatField("Global Delay", ref globalDelay))
            {
                foreach (SpriteAnimInfo i in sprite.anim)
                {
                    i.delay = globalDelay;
                }
                EditorUtil.SetDirty(sprite);
            }
        }
Exemplo n.º 2
0
        public override void OnInspectorGUI()
        {
            if (inspector.OnInspectorGUI())
            {
                rq.Optimize();
            }
            showZ = EditorGUILayout.BeginToggleGroup("Z Transform", showZ);
            if (showZ)
            {
                EditorGUI.indentLevel += 2;
                EditorGUIUtil.FloatField("Z Base", ref rq.zBase);
                EditorGUIUtil.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);
            }
        }