using Thousandto.Code.Logic; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEditor; using UnityEngine; namespace Thousandto.SkillEditor.DIY { //技能播放管理器 public class EditorSkillManager { public EditorEntity Owner { get; private set; } public List CacheSkillList { get; private set; } public EditorSkill CurSkill { get; private set; } public bool IsUsing { get { return CacheSkillList.Count > 0 || CurSkill != null; } } public EditorSkillManager(EditorEntity owner) { Owner = owner; CacheSkillList = new List(); } public void UseSkill(SkillVisualInfo skillInfo) { var skill = new EditorSkill(Owner, skillInfo); CacheSkillList.Add(skill); if(CurSkill == null) { Update(0f); } } public void StopAllSkill() { CacheSkillList.Clear(); if(CurSkill != null) { CurSkill.Stop(); } CurSkill = null; } public void Update(float dt) { if(CurSkill != null) { CurSkill.Update(dt); if(CurSkill.IsFinish) { CurSkill = null; } } if(CurSkill == null && CacheSkillList.Count > 0) { CurSkill = CacheSkillList[0]; CurSkill.Start(); CacheSkillList.RemoveAt(0); } } } }