<aside> ❗ 씬마다 **CollavoSystem(Prefab)**을 추가해야 작동합니다.

</aside>

CollavoSystem

public class CollavoSystem : MonoBehaviour
{
    private Dictionary<string, PlayerController> _currentSkills= new Dictionary<string, PlayerController>();

    private void Start()
    {
		    // 임시 코드 테스트를 위한
        _currentSkills.Add("test", null);
    }

    public void AddCurrentSkill(PlayerController controller, string skillName)
    {
        if(_currentSkills.TryGetValue(skillName, out PlayerController player)) // 있음
        {
            _currentSkills.Remove(skillName);
            ChangeToCollavoState(controller);
            ChangeToCollavoState(player);
        }
        else // 없음
        {
            _currentSkills.Add(skillName, controller);
        }
        
    }

    public void ChangeToCollavoState(PlayerController controller)
    {
        if (controller == null) return;
        controller.ChangeState(controller.COLLAVO_STATE);
    }

    public void RemoveCurrentSkill(string skillName)
    {
        if(_currentSkills.ContainsKey(skillName)) _currentSkills.Remove(skillName);
    }

    public void Clear()
    {
        _currentSkills.Clear();
    }
}

Dictionary<string, PlayerController> _currentSkills

어떤 콜라보 스킬을 어떤 플레이어가 썼는지 기록합니다.

AddCurrentSkill(PlayerController controller, string skillName)

RemoveCurrentSkill(string skillName)

skillName은 뭐냐?

Untitled