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); } }
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); } }