2024-01-24 00:48:26 +00:00
|
|
|
using System.Collections.Generic;
|
2024-01-28 15:46:56 +00:00
|
|
|
using UnityEngine;
|
2024-01-24 00:48:26 +00:00
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
namespace BlueWaterProject
|
|
|
|
{
|
|
|
|
public class SkillManager : Singleton<SkillManager>
|
|
|
|
{
|
2024-01-28 15:46:56 +00:00
|
|
|
[SerializeField] private List<GameObject> skillPrefab = new();
|
|
|
|
private List<SkillBase> skillList;
|
2024-01-24 00:48:26 +00:00
|
|
|
|
2024-01-28 15:46:56 +00:00
|
|
|
protected override void OnAwake()
|
2024-01-24 00:48:26 +00:00
|
|
|
{
|
2024-01-28 15:46:56 +00:00
|
|
|
var skillNum = skillPrefab.Count;
|
|
|
|
skillList = new List<SkillBase>(skillNum);
|
|
|
|
|
|
|
|
for (var i = 0; i < skillNum; i++)
|
|
|
|
{
|
|
|
|
var skill = skillPrefab[i].GetComponent<SkillBase>();
|
|
|
|
AddSkill(skill);
|
|
|
|
}
|
2024-01-24 00:48:26 +00:00
|
|
|
}
|
|
|
|
|
2024-01-28 15:46:56 +00:00
|
|
|
public void AddSkill(SkillBase skill)
|
2024-01-24 00:48:26 +00:00
|
|
|
{
|
2024-01-28 15:46:56 +00:00
|
|
|
if (!skillList.Contains(skill))
|
2024-01-24 00:48:26 +00:00
|
|
|
{
|
2024-01-28 15:46:56 +00:00
|
|
|
skillList.Add(skill);
|
2024-01-24 00:48:26 +00:00
|
|
|
}
|
|
|
|
}
|
2024-01-28 15:46:56 +00:00
|
|
|
|
|
|
|
public SkillBase FindSkill(string skillName)
|
|
|
|
{
|
2024-02-12 20:50:24 +00:00
|
|
|
return skillList.Find(s => s.SkillName == skillName);
|
2024-01-28 15:46:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public SkillBase InstantiateSkill(string skillName)
|
|
|
|
{
|
|
|
|
var skill = FindSkill(skillName);
|
|
|
|
|
|
|
|
return skill ? Instantiate(skill.gameObject, Vector3.zero, Quaternion.identity).GetComponent<SkillBase>() : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
// public void ActivateSkill(ISkillUser user, int skillIndex, SkillInputData inputData)
|
|
|
|
// {
|
|
|
|
// if (skillIndex >= 0 && skillIndex < skillList.Count)
|
|
|
|
// {
|
|
|
|
// user.ActivateSkill(skillList[skillIndex], inputData);
|
|
|
|
// }
|
|
|
|
// }
|
2024-01-24 00:48:26 +00:00
|
|
|
}
|
|
|
|
}
|