public void OnGUI(FB.FFSM.BlockFunc func) { EditorGUILayout.HelpBox("这个功能是攻击判定", MessageType.Info); func.haveexit = false; FixInt("攻击可命中多少敌人", ref func.intParam0); FixInt("命中HitCount", ref func.intParam1); GUILayout.Space(10); FixString("攻击影响参数", ref func.strParam0); FixInt("攻击影响值", ref func.intParam2); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label("攻击导致对方状态", GUILayout.Width(145)); if (GUILayout.Button(func.strParam1)) { //Window_StateLeadState.Show(Window_StateTable.StateTree.states, (str) => { // func.strParam1 = str; // EditorUtility.SetDirty(Window_StateTable.stateTable); //},false); List <string> allBehurtStates = new List <string>(); foreach (var item in Window_StateTable.stateTable.allBehurtStates) { allBehurtStates.Add(item.name); } Window_PickAny.ShowAny(allBehurtStates, (str) => { BeHurtState = str; }); } if (!string.IsNullOrEmpty(BeHurtState)) { func.strParam1 = BeHurtState; BeHurtState = null; } GUILayout.EndHorizontal(); int nhold = GUILayout.Toggle(func.intParam3 > 0, "是否具有抓持效果") ? 1 : 0; if (nhold != func.intParam3) { func.intParam3 = nhold; EditorUtility.SetDirty(Window_StateTable.stateTable); } int nhurt = GUILayout.Toggle(func.intParam4 > 0, "是否伤害队友") ? 1 : 0; if (nhurt != func.intParam4) { func.intParam4 = nhurt; EditorUtility.SetDirty(Window_StateTable.stateTable); } }
void OnGUI_ListCustomFunc() { if (GUILayout.Button("选择功能")) { //这里要扩展 var pmap = FB.FFSM.FightFSM.InitBlockParserMap(); //根据pmap.keys 显示 //如过pmapkey有,但是regfuncs没有的,就要手动编辑 Window_PickAny.ShowAny(pmap.Keys, (str) => { pickfunc = str; this.Focus(); }); isselectchange = true; } if (pickfunc != null && pickfunc != selectFunc.classname) { selectFunc.classname = pickfunc; SetAssetDirtyFunc(); pickfunc = null; } }
public void OnGUI(FB.FFSM.BlockFunc func) { EditorGUILayout.HelpBox("这个功能是配置PropExit", MessageType.Info); FB.FFSM.BlockParser_WhenPropExit.WhenExit opera = (FB.FFSM.BlockParser_WhenPropExit.WhenExit)func.intParam2; EditorGUILayout.BeginHorizontal(); /* GUILayout.Label("类型:", GUILayout.Width(30));*/ //str0 func.strParam0 = EditorGUILayout.TextField(func.strParam0, GUILayout.Width(50)); var exit2 = (FB.FFSM.BlockParser_WhenPropExit.WhenExit)EditorGUILayout.EnumPopup(opera, GUILayout.Width(200)); //int2 func.intParam2 = (int)exit2; /* GUILayout.Label("数值:", GUILayout.Width(30));*/ func.intParam1 = EditorGUILayout.IntField(func.intParam1, GUILayout.Width(50)); EditorGUILayout.EndHorizontal(); //stand GUILayout.BeginHorizontal(); GUILayout.Label("状态:", GUILayout.Width(50)); string butt_str = "选择"; if (!string.IsNullOrEmpty(func.strParam1) && func.strParam1 != "") { butt_str = func.strParam1; } List <string> allstatename = new List <string>(); foreach (var state in Window_StateTable.stateTable.allStates) { allstatename.Add(state.name); } if (GUILayout.Button(butt_str, GUILayout.Width(butt_str.Length * 7 + 15))) { Window_PickState.Show(Window_StateTable.StateTree.states, (str) => { pickstr_exitstate = str; }, true); } if (!string.IsNullOrEmpty(pickstr_exitstate) && pickstr_exitstate != func.strParam1) { //str1 func.strParam1 = pickstr_exitstate; pickstr_exitstate = null; func.intParam0 = -1; } GUILayout.EndHorizontal(); //index GUILayout.BeginHorizontal(); GUILayout.Label("index:", GUILayout.Width(50)); string idex_str = "选择"; if (!string.IsNullOrEmpty(func.strParam1) && func.strParam1 != "" && func.intParam0 >= 0) { idex_str = func.intParam0.ToString(); } var select_state = Window_StateTable.stateTable.allStates.Find(s => s.name == func.strParam1); List <string> allblockname = new List <string>(); int count = 0; if (select_state != null) { foreach (var block in select_state.blocks) { allblockname.Add(count.ToString()); count++; } } if (GUILayout.Button(idex_str, GUILayout.Width(120))) { Window_PickAny.ShowAny(allblockname, (str) => { pickstr_exitint = str; //this.Focus(); //Repaint(); }); } if (!string.IsNullOrEmpty(pickstr_exitint)) { //int0 int.TryParse(pickstr_exitint, out func.intParam0); pickstr_exitint = null; } //int id = EditorGUILayout.IntField(_selectBlock.exits[ie].blockindex, GUILayout.Width(120)); GUILayout.EndHorizontal(); }