//对应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)); }
//播放动作 private void UpdatePlayerControl(SkillAssetInfo skillInfo) { GUILayout.BeginHorizontal(); skillInfo.isCtrl = EditorGUILayout.Toggle("IsControl", skillInfo.isCtrl); skillInfo.isSkillDir = EditorGUILayout.Toggle("IsSkillDir", skillInfo.isSkillDir); GUILayout.EndHorizontal(); }
//播放动作 private void UpdatePlayerAnimItem(SkillAssetInfo skillInfo) { GUILayout.BeginHorizontal(); GUILayout.Label("AnimaName:", GUILayout.Width(100)); skillInfo.animName = EditorGUILayout.TextField(skillInfo.animName); GUILayout.EndHorizontal(); }
private void AddSubTagSure(int index) { SkillAssetInfo skillInfo = new SkillAssetInfo(); skillAsset.ListSkillGroup[index].ListSkillInfo.Add(skillInfo); EditorUtility.SetDirty(skillAsset); }
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); }