private void DrawDetail(int index) { DBEffEvent e = dataList[clickIndex].eventDataList[index]; EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("特效名称", GUILayout.Width(70)); EditorGUILayout.LabelField(e.param); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("帧", GUILayout.Width(70)); EditorGUILayout.LabelField(e.frameIndex.ToString()); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.ToggleLeft("当前", index == selectIndex, GUILayout.Width(100)); if (GUILayout.Button("摆Pos", GUILayout.Width(70))) { selectIndex = index; comp.animation.GotoAndStopByFrame(dataList[clickIndex].animationName, (uint)e.frameIndex); } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); EditorGUILayout.EndVertical(); }
private void OnEnable() { inst = this; var db = target as DragonBonesProxy; comp = db.GetComponent <UnityArmatureComponent>(); if (comp == null || comp.unityData == null) { return; } dataList.Clear(); Dictionary <string, object> dicRoot = (Dictionary <string, object>)MiniJSON.Json.Deserialize(comp.unityData.dragonBonesJSON.text); if (dicRoot.ContainsKey("armature")) { List <object> armatureRoot = (List <object>)dicRoot["armature"]; for (int i = 0; i < armatureRoot.Count; i++) { Dictionary <string, object> armature = (Dictionary <string, object>)armatureRoot[i]; if (armature.ContainsKey("animation")) { List <object> animationRoot = (List <object>)armature["animation"]; foreach (object anim in animationRoot) { Dictionary <string, object> animDic = (Dictionary <string, object>)anim; if (animDic.ContainsKey("frame")) { List <object> frameList = (List <object>)animDic["frame"]; foreach (object frame in frameList) { Dictionary <string, object> frameDic = (Dictionary <string, object>)frame; DBEffData data = new DBEffData(); data.eventDataList = new List <DBEffEvent>(); if (frameDic.ContainsKey("events")) { List <object> eventList = (List <object>)frameDic["events"]; foreach (object evt in eventList) { Dictionary <string, object> evtDic = (Dictionary <string, object>)evt; if ("event_effect" == (string)evtDic["name"]) { data.animationName = (string)animDic["name"]; List <object> strings = (List <object>)evtDic["strings"]; DBEffEvent e = new DBEffEvent() { param = (string)strings[0], frameIndex = int.Parse(frameDic["duration"].ToString()) }; data.eventDataList.Add(e); dataList.Add(data); } } } } } } } } } }