Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    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();
    }