public void GetSprites() { spriteList.Clear(); Sprite[] sprites = spriteDatabase.GetSprites(spriteGroupSelect, spriteSetSelect); if (sprites == null) { return; } for (int i = 0; i < sprites.Length; ++i) { Define.SpriteInfo info = null; if (sprites[i] != null) { info = new Define.SpriteInfo(); info.group = spriteGroupSelect; info.set = spriteSetSelect; info.index = i; } spriteList.Add(new SpriteObject(new Rect(spriteObjectX, i * (spriteObjectHeight + 2f) , spriteObjectWidth, spriteObjectHeight) , info, sprites[i] == null ? "null" : sprites[i].name)); } }
public void ObjectCheck(EditorWindow edit, ref Define.SpriteInfo dragInfo) { Event ev = Event.current; if (ev.type == EventType.MouseDown) { if (area.Contains(ev.mousePosition)) { select = this; edit.Repaint(); } } else if (ev.type == EventType.mouseUp) { if (area.Contains(ev.mousePosition)) { if (select == this) { if (thisFrame) { thisFrame = false; select = null; edit.Repaint(); } else { thisFrame = true; } } } } if (select != this) { thisFrame = false; } if (dragInfo == null) { if (area.Contains(ev.mousePosition)) { if (ev.type == EventType.MouseDrag) { dragInfo = info; } } } ColorCheck(); }
public void InformationDraw() { Rect infoArea = new Rect(5f, 10f, 155f, position.height - 20f); GUILayout.BeginArea(infoArea); GUILayout.BeginHorizontal(); GUILayout.Button("▶", GUILayout.Width(20f)); GUILayout.Button("▣", GUILayout.Width(20f)); GUILayout.Label("currFrame : " + currFrame.ToString()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("fps"); framePerSec = EditorGUILayout.FloatField(framePerSec); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("loop"); loop = EditorGUILayout.Toggle(loop); GUILayout.EndHorizontal(); if (Frame.select != null) { Define.SpriteInfo info = Frame.select.frameInfo; if (info != null) { GUI.Label(new Rect(3f, 55f, 150f, 25f), "sprite : " + spriteList[info.index].name); } } GUILayout.Space(25f); SaveButton(); LoadButton(); GUILayout.EndArea(); }
public bool FrameCheck(EditorWindow edit, ref Define.SpriteInfo dragInfo) { Event ev = Event.current; if (ev.type == EventType.MouseDown) { if (area.Contains(ev.mousePosition)) { if (select == this) { select = null; } else { select = this; } edit.Repaint(); } } if (dragInfo != null) { if (area.Contains(ev.mousePosition)) { if (ev.type == EventType.mouseUp) { frameInfo = dragInfo; dragInfo = null; ContainCheck(); edit.Repaint(); } } } ColorCheck(); return(select == this); }
public void AddFrame(Define.SpriteInfo info) { frameList.Add(new Frame(new Rect(12f * frameList.Count + frameX, frameY, frameWidth, frameHeight), info)); }
void OnGUI() { if (Event.current.type == EventType.MouseUp) { mouseUp = true; } Rect frameArea = new Rect(165f, 10f, position.width - 370f, position.height - 25f); Rect boxArea = frameArea; boxArea.height += 5f; GUI.Box(boxArea, ""); GUILayout.BeginArea(frameArea); frameScroll = GUILayout.BeginScrollView(frameScroll); GUILayout.BeginHorizontal(); for (int i = 0; i < frameList.Count; ++i) { if (frameList[i].FrameCheck(this, ref dragInfo)) { currFrame = i; } frameList[i].Draw(); if (i % 5 == 0) { Rect r = frameList[i].area; DrawLine(new Vector3(5f + i * frameWidth, 28f, 0f), new Vector3(5f + i * frameWidth, 15f, 0f)); r.y -= 24f; r.width = 20f; GUI.Label(r, i.ToString()); } else { DrawLine(new Vector3(5f + i * frameWidth, 28f, 0f), new Vector3(5f + i * frameWidth, 23f, 0f)); } } if (Frame.select == null) { currFrame = -1; } if (mouseUp) { if (dragInfo != null) { dragInfo = null; } } DrawLine(new Vector3(5f, 28f, 0f), new Vector3(5f + frameList.Count * frameWidth, 28f, 0f)); GUILayout.EndHorizontal(); GUILayout.Space(frameHeight + 30f); if (frameList.Count != 0) { curve = EditorGUILayout.CurveField(curve, Color.green, new Rect(0, 0, 1f, 5f), new GUILayoutOption[] { GUILayout.Width(frameList.Count * 12f), GUILayout.Height(position.height - 155f), }); } GUILayout.EndScrollView(); if (GUILayout.Button("AddFrame")) { AddFrame(); } if (GUILayout.Button("DeleteFrame")) { DeleteFrame(currFrame); } GUILayout.EndArea(); Rect spriteArea = new Rect(position.width - 200f, 10f, 195f, position.height - 20f); GUILayout.BeginArea(spriteArea); spriteGroupSelect = EditorGUILayout.Popup(spriteGroupSelect, spriteGroup); if (prevSpriteGroupSelect != spriteGroupSelect) { prevSpriteGroupSelect = spriteGroupSelect; GetSpriteSelect(); GetSprites(); } if (spriteSet != null) { spriteSetSelect = EditorGUILayout.Popup(spriteSetSelect, spriteSet); if (prevSpriteSetSelect != spriteSetSelect) { prevSpriteSetSelect = spriteSetSelect; GetSprites(); } } GUILayout.BeginVertical("box"); spriteScroll = GUILayout.BeginScrollView(spriteScroll, false, true); if (spriteList.Count != 0) { for (int i = 0; i < spriteList.Count; ++i) { Rect rect = spriteList[i].area; rect.x = 0f; spriteList[i].ObjectCheck(this, ref dragInfo); GUI.Label(rect, i.ToString() + "."); spriteList[i].Draw(2f); } } GUILayout.EndScrollView(); GUILayout.EndVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("Range"); rangeMin = EditorGUILayout.IntField(rangeMin); GUILayout.Label("~"); rangeMax = EditorGUILayout.IntField(rangeMax); GUILayout.EndHorizontal(); if (GUILayout.Button("Add to Range")) { AddToRange(); } if (GUILayout.Button("Add All")) { AddAll(); } GUILayout.EndArea(); // curve = EditorGUILayout.CurveField(curve,Color.green,new Rect(0,0,1f,5f),GUILayout.Height(100f)); // if(GUILayout.Button("Test")) // { // Debug.Log(curve.Evaluate(0.001f)); // Debug.Log(curve.Evaluate(1f)); // } // GUI.color = Color.red; // GUI.Box(new Rect(0,0,100,100),"check"); InformationDraw(); SpeedSync(); mouseUp = false; }
public SpriteObject(Rect rect, Define.SpriteInfo i, string n) { area = rect; info = i; name = n; }
public Frame(Rect rt, Define.SpriteInfo frame) { area = rt; frameInfo = frame; ContainCheck(); }