71 lines
1.7 KiB
C#
71 lines
1.7 KiB
C#
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|