void RemoveFrameData(ZtEdFrameData framedata) { if (null != frameList) { frameList.Remove(framedata); } }
public void GetSkillTable(LuaTable skillTab, List <ZtEdFrameData> frameList) { skillTab.ForEach <int, LuaTable>((int key, LuaTable value) => { ZtEdFrameData framedata = new ZtEdFrameData(); framedata.frame = key; frameList.Add(framedata); GetSkillParam(value, framedata); }); }
void DrawFrameData(ZtEdFrameData framedata) { #region 垂直窗口 GUILayout.BeginVertical("Frame" + framedata.frame, "window", GUILayout.Width(1180), GUILayout.MinHeight(50)); #region 水平标题 GUILayout.BeginHorizontal(); if (GUILayout.Button("—", GUILayout.Width(25), GUILayout.Height(15))) { RemoveFrameData(framedata); return; } GUILayout.Label("触发帧:", GUILayout.Width(50)); framedata.frame = EditorGUILayout.IntField(framedata.frame, GUILayout.Width(50)); GUILayout.FlexibleSpace(); framedata.editorSel = GUILayout.Toolbar(framedata.editorSel, ZTSkillEditorDefine.TypeDes); //framedata.editorSel = EditorGUILayout.Popup(framedata.editorSel, ZTSkillEditorDefine.TypeDes,GUILayout.Width(100),GUILayout.Height(20)); if (GUILayout.Button("添加action", GUILayout.Width(100), GUILayout.Height(20))) { ZtEdSkillAction actoin = new ZtEdSkillAction(); actoin.actionType = framedata.editorSel; int count = 1; if (ZTSkillEditorDefine.TypeList != null && ZTSkillEditorDefine.TypeList.ContainsKey(actoin.actionType)) { count = ZTSkillEditorDefine.TypeList[actoin.actionType].Length; } for (int i = 0; i < count; i++) { actoin.param.Add("-1"); } framedata.actoinList.Add(actoin); } GUILayout.Space(30); GUILayout.EndHorizontal(); #endregion for (int i = 0; i < framedata.actoinList.Count; i++) { bool isRemove = DrawActoin(framedata.actoinList[i], framedata); if (isRemove) { break; } } GUILayout.EndVertical(); GUILayout.Space(10); #endregion }
bool DrawActoin(ZtEdSkillAction action, ZtEdFrameData framedata) { GUILayout.BeginVertical("HelpBox"); GUILayout.BeginHorizontal(); GUILayout.Space(5); if (GUILayout.Button("—", GUILayout.Width(25), GUILayout.Height(15))) { framedata.actoinList.Remove(action); return(true); } GUILayout.Label(ZTSkillEditorDefine.TypeDes[action.actionType] + ":"); for (int i = 0; i < action.param.Count; i++) { if (i == 6) { GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); } if (ZTSkillEditorDefine.TypeList.ContainsKey(action.actionType)) { string labelName = ZTSkillEditorDefine.TypeList[action.actionType][i]; GUILayout.Label(labelName); switch (labelName) { case "方向": action.param[i] = DrawFacePop(action.param[i] as string); break; case "层次": action.param[i] = DrawLayerPop(action.param[i] as string); break; case "目标类型": action.param[i] = DrawTargetPop(action.param[i] as string); break; default: action.param[i] = (string)EditorGUILayout.TextField(action.param[i] as string); break; } } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); return(false); }
public void GetSkillParam(LuaTable actiontable, ZtEdFrameData framedata) { actiontable.ForEach <int, LuaTable>((int key, LuaTable value) => { LuaTable paramTab = value.Get <LuaTable>("param"); int actionType = value.Get <int>("actionType"); ZtEdSkillAction skillAction = new ZtEdSkillAction(); skillAction.actionType = actionType; paramTab.ForEach <int, string>((int paramKey, string paramVal) => { skillAction.param.Add(paramVal); }); framedata.actoinList.Add(skillAction); }); }
void DrawZtEdFrameDataList() { if (null == frameList) { return; } GUILayout.BeginVertical("HelpBox"); GUILayout.Label("当前编辑id: " + luaEditor.CurLuaKey, styleLabelLeft); scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(1200), GUILayout.Height(620)); for (int i = 0; i < frameList.Count; i++) { ZtEdFrameData framedata = frameList[i]; DrawFrameData(framedata); } EditorGUILayout.EndScrollView(); GUILayout.EndVertical(); }
private string GetFrameStr(string key, List <ZtEdFrameData> frameList) { string scriptStr = string.Empty; scriptStr += "\t" + key + " = {\n"; for (int index = 0; index < frameList.Count; index++) { ZtEdFrameData framedata = frameList[index]; scriptStr += string.Format("\t\t[ {0} ] = ", framedata.frame) + "{\n"; for (int i = 0; i < framedata.actoinList.Count; i++) { scriptStr += GetActcionStr(framedata.actoinList[i]); } scriptStr += "\t\t},\n"; } //for (int i = 0; i < moduleList.Count; i++) //{ // scriptStr += moduleList[i].GetDefine(); //} scriptStr += "\t},\n\n"; return(scriptStr); }