コード例 #1
0
    static void SkillMove(Character cha, ChildObject childObj, SkillContext context, excel_skill_event e)
    {
        if (cha == null)
        {
            return;
        }
        SkillMoveDataType type = (SkillMoveDataType)e.evnetParam1;

        if (type == SkillMoveDataType.MoveType1)
        {
            float     time      = (float)e.evnetParam2 * 0.001f;
            SkillMove skillMove = IAction.CreateAction <SkillMove>();
            skillMove.Init1(cha, context.TargetPos, time);
            cha.AddAction(skillMove);
        }
        else if (type == SkillMoveDataType.MoveType2)
        {
            float time  = (float)e.evnetParam2 * 0.001f;
            float speed = (float)e.evnetParam3 * 0.001f;

            Vector3 dir = context.TargetPos - cha.Position;

            SkillMove skillMove = IAction.CreateAction <SkillMove>();
            skillMove.Init2(cha, dir, speed, time);
            cha.AddAction(skillMove);
        }
        context.SetSkillContextFlag(SkillContextFlag.SyncPosOnSkillEnd, true);
    }
コード例 #2
0
    static void SkillMoveEvent(excel_skill_event e)
    {
        int[]    values = Enum.GetValues(typeof(SkillMoveDataType)) as int[];
        string[] texts  = new string[values.Length];
        for (int i = 0; i < values.Length; ++i)
        {
            SkillMoveDataType t = (SkillMoveDataType)values[i];
            texts[i] = t.ToDescription();
        }
        e.evnetParam1 = EditorGUILayout.IntPopup("移动类型", e.evnetParam1, texts, values);
        SkillMoveDataType moveType = (SkillMoveDataType)e.evnetParam1;

        if (moveType == SkillMoveDataType.MoveType1)
        {
            float time = (float)e.evnetParam2 * 0.001f;
            time          = EditorGUILayout.FloatField("移动时间", time);
            e.evnetParam2 = (int)(time * 1000.0f);
        }
        else if (moveType == SkillMoveDataType.MoveType2)
        {
            float time = (float)e.evnetParam2 * 0.001f;
            time          = EditorGUILayout.FloatField("移动时间(s)", time);
            e.evnetParam2 = (int)(time * 1000.0f);

            float speed = (float)e.evnetParam3 * 0.001f;
            speed         = EditorGUILayout.FloatField("移动速度(m/s)", speed);
            e.evnetParam3 = (int)(speed * 1000.0f);
        }
    }