Files
Main/Assets/Editor/DIY/SkillEditor/EditorSkillManager.cs

71 lines
1.7 KiB
C#
Raw Permalink Normal View History

2025-01-25 04:38:09 +08:00
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<EditorSkill> 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<EditorSkill>();
}
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);
}
}
}
}