tow0827

tow0827

채택률 높음

unity 에서 스킬을 만드는데 어떻게 해야하나요?

스킬을 q슬롯,w슬롯,e슬롯,r슬롯 으로 나눠서 스킬을 각각의 슬롯에 넣고 사용하는 느낌으로 만들려고 시리얼 라이즈 필드를 이용해서 연습해보려는데 skill 클래스의 매서드를 쓰려고 하는데 타입을 어떻게 받아야 할지 모르겠어요

2개의 답변이 있어요!

  • 안녕하세요. 김재훈 전문가입니다.

    Unity에서 Q, W, E, R 슬롯에 유연하게 스킬을 할당하고 메서드를 호출하려면, 모든 스킬의 기본 구조가 되는 상위 Skill 인터페이스를 정의한 뒤 각 슬롯의 변수 타입을 이 부모 타입으로 선언해야 합니다. 그 후 Skill 클래스 내부에 스킬 발동을 담당할 virtual void UseSkill() 메서드를 만들고 이를 상속받은 하위 스킬 클래스들이 각자의 효과를 override하여 구현하도록 구조를 잡습니다. 이렇게 하면 스크립트에서 [SerializeField] private Skill qSkill;처럼 타입을 부모 클래스로 지정할 수 있어 인스펙터 창에서 Q 슬롯에 어떤 하위 스킬을 넣든 관계없이 qSkill.UseSkill(); 한 줄만으로 각 슬롯에 장착된 스킬의 메서드를 올바르게 실행할 수 있습니다.

    채택 보상으로 508베리 받았어요.

    채택된 답변
  • 안녕하세요. 박재화 전문가입니다.

    일반적으로 Q, W, E, R 슬롯에는 전부 skill 타입을 넣으면 됩니다.

    FireSkill, HealSkill, DashSkill 처럼 스킬 종류가 달라도, 부모를 Skill로 맞춰주면 공통으로 Use() 매서드를 사용할 수 있게 됩니다.

    즉, 슬롯은 Skill 타입으로 받고, 실제로 들어가는 건 FireSkill과 같은 자식 스킬이라고 생각하시면 될 것 같습니다.