Beispiel #1
0
    //对应actor类型 创建
    private SkillActionBase GetSkillActionBase(uint frame, SkillAssetInfo skillInfo)
    {
        switch (skillInfo.actionType)
        {
        case SkillDefine.SkillActionType.PLAY_CONTROL:
            return(new SAPlayerControl(skillInfo.isCtrl, skillInfo.isSkillDir, this, frame));

        case SkillDefine.SkillActionType.PLAY_ANIM:
            return(new SAPlayAnim(skillInfo.animName, this, frame));

        case SkillDefine.SkillActionType.PLAY_MOVE:
            MoveInfo moveInfo = skillInfo.moveInfo;
            return(new SAPlayerMove(moveInfo, this, frame));

        case SkillDefine.SkillActionType.COLLIDER:
            CollBase collider = GetOperaColliderInfo(skillInfo.colliderInfo);
            return(new SACollider(collider, skillInfo.colliderInfo, this, frame));

        case SkillDefine.SkillActionType.COLLIDER_MOVE:
            CollBase colliderMove = GetOperaColliderInfo(skillInfo.colliderInfo);
            moveInfo = skillInfo.moveInfo;
            return(new SAColliderMove(moveInfo, colliderMove, skillInfo.colliderInfo, this, frame));

        case SkillDefine.SkillActionType.ADD_EFFECT:
            return(new SAEffect(skillInfo.effectInfo, this, frame));
            //case SkillDefine.SkillActionType.FIGHT_EFFECT:
            //    return new SAFightEffect(skillInfo.fightEffects,this,frame);
        }
        return(new SkillActionBase(this, frame));
    }
Beispiel #2
0
 //播放动作
 private void UpdatePlayerControl(SkillAssetInfo skillInfo)
 {
     GUILayout.BeginHorizontal();
     skillInfo.isCtrl     = EditorGUILayout.Toggle("IsControl", skillInfo.isCtrl);
     skillInfo.isSkillDir = EditorGUILayout.Toggle("IsSkillDir", skillInfo.isSkillDir);
     GUILayout.EndHorizontal();
 }
Beispiel #3
0
 //播放动作
 private void UpdatePlayerAnimItem(SkillAssetInfo skillInfo)
 {
     GUILayout.BeginHorizontal();
     GUILayout.Label("AnimaName:", GUILayout.Width(100));
     skillInfo.animName = EditorGUILayout.TextField(skillInfo.animName);
     GUILayout.EndHorizontal();
 }
Beispiel #4
0
    private void AddSubTagSure(int index)
    {
        SkillAssetInfo skillInfo = new SkillAssetInfo();

        skillAsset.ListSkillGroup[index].ListSkillInfo.Add(skillInfo);
        EditorUtility.SetDirty(skillAsset);
    }
Beispiel #5
0
    public override void OnInspectorGUI()
    {
        ve2ScorllView = GUILayout.BeginScrollView(ve2ScorllView);

        #region 标题栏
        GUILayout.BeginVertical("HelpBox");
        GUILayout.BeginHorizontal();
        GUILayout.Label("创建触发帧:", GUILayout.Width(100));
        addTagFrame = (uint)EditorGUILayout.IntField((int)addTagFrame, GUILayout.Width(50));
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Add Tag", GUILayout.Width(100), GUILayout.Height(30)))
        {
            SkillAssetInforGroup spriteInforGroup = skillAsset.ListSkillGroup.Find(
                delegate(SkillAssetInforGroup sig)
            {
                return(sig.FrameTime == addTagFrame);
            });

            if (spriteInforGroup != null)
            {
                Debug.Log("该标签已存在!");
            }
            else
            {
                AddTagSure(addTagFrame);
            }
        }
        GUILayout.EndHorizontal();
        GUILayout.EndVertical();
        #endregion

        for (int i = 0; i < skillAsset.ListSkillGroup.Count; i++)
        {
            GUILayout.BeginHorizontal("HelpBox");
            #region 展开与收缩按钮
            if (GUILayout.Button("触发帧:  ", showIndex == i ? "OL Minus" : "OL Plus"))
            {
                if (showIndex == i)
                {
                    showIndex = -1;
                }
                else
                {
                    showIndex = i;
                }
            }
            #endregion

            skillAsset.ListSkillGroup[i].FrameTime = (uint)EditorGUILayout.IntField((int)skillAsset.ListSkillGroup[i].FrameTime, GUILayout.Width(50));
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("AddSKillInfo", GUILayout.Width(100)))
            {
                AddSubTagSure(i);
            }
            if (GUILayout.Button("Clear Tag", GUILayout.Width(100)))
            {
                ClearTagByIndex(i);
            }
            GUILayout.EndHorizontal();

            #region 展开的Skill组,显示所有Skill属性
            if (showIndex == i)
            {
                //index = EditorGUILayout.Popup(index, new string[]{"1","2","3"});
                for (int j = 0; j < skillAsset.ListSkillGroup[i].ListSkillInfo.Count; j++)
                {
                    GUILayout.BeginHorizontal("SkillAsset" + j, "window");
                    //skillAsset.listSkillGroup[i].listSkillInfor[j].sprite = EditorGUILayout.ObjectField("", skillAsset.listSkillGroup[i].listSkillInfor[j].sprite, typeof(Skill), false, GUILayout.Width(80)) as Skill;

                    //GUILayout.FlexibleSpace();
                    SkillAssetInfo skillInfo = skillAsset.ListSkillGroup[i].ListSkillInfo[j];

                    GUILayout.BeginVertical();
                    GUILayout.BeginHorizontal();
                    GUILayout.Label("SkillActionType:", GUILayout.Width(100));
                    skillInfo.actionType = (SkillDefine.SkillActionType)EditorGUILayout.EnumPopup("", skillInfo.actionType);

                    if (GUILayout.Button("Clear Action", GUILayout.Width(100)))
                    {
                        ClearSubTagByIndex(i, j);
                    }
                    GUILayout.FlexibleSpace();
                    GUILayout.EndHorizontal();

                    switch (skillInfo.actionType)
                    {
                    case SkillDefine.SkillActionType.PLAY_CONTROL:
                        UpdatePlayerControl(skillInfo);
                        break;

                    case SkillDefine.SkillActionType.PLAY_ANIM:
                        UpdatePlayerAnimItem(skillInfo);
                        break;

                    case SkillDefine.SkillActionType.PLAY_MOVE:
                        UpdatePlayerMoveItem(skillInfo.moveInfo);
                        break;

                    case SkillDefine.SkillActionType.COLLIDER:
                        UpdateColliderItem(skillInfo.colliderInfo);
                        break;

                    case SkillDefine.SkillActionType.COLLIDER_MOVE:
                        UpdateColliderItem(skillInfo.colliderInfo);
                        UpdatePlayerMoveItem(skillInfo.moveInfo);
                        break;

                    case SkillDefine.SkillActionType.ADD_EFFECT:
                        UpdateEffectItem(skillInfo.effectInfo);
                        break;
                        //case SkillDefine.SkillActionType.FIGHT_EFFECT:
                        //    UpdateFightEffect(skillInfo.fightEffects);
                        //break;
                    }
                    GUILayout.EndVertical();

                    GUILayout.EndHorizontal();
                }
            }
            #endregion
        }

        GUILayout.EndScrollView();
        //unity
        EditorUtility.SetDirty(skillAsset);
    }