/// <summary> /// 新增标签 /// </summary> private void AddTagSure(uint frame) { SkillAssetInforGroup sig = new SkillAssetInforGroup(); sig.FrameTime = frame; sig.ListSkillInfo = new List <SkillAssetInfo>(); skillAsset.ListSkillGroup.Add(sig); Init(); 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); }