Inflearn brand logo image

인프런 커뮤니티 질문&답변

심재욱님의 프로필 이미지
심재욱

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

돌진해서 몸박을하면 피격자를 날리면서 데미지를 입히는 스킬은 이 시스템에서 어떻게 만들 수 있을까요??

작성

·

45

0

스킬 시전자를 Preceding Action에서 이동을 시키면서 몸박 콜라이더에 닿는 타겟에게 Effect를 Apply 시켜야할 것같은데.. 구조상으로는 Target에게 Effect를 적용시키는 InActionState와 Preceding Action State가 분리가 되어있어서 조금 생각하기 어려운것같습니다.

답변 2

0

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다.

돌진 부분 전체를 SkillAction으로 구현해주시면 됩니다.

DashAttackAction.cs
Start => 돌진 시작, owner.Movement.StartDash();
Apply => Target들에게 Skill을 적용함, target.SkillSystem.Apply(skill)
Release => 돌진 종료, owner.Movement.StopDash();

ApplyCycle과 ApplyCount를 0(무한)으로 주고, SelectionAction을 Entity 자신, SearchAction을 Entity 주변으로 하면 Entity가 돌진하며 자기 주변 적을 때리겠죠? 때린 적을 또 때리지 않기 위해서는 한번 때린 적은 Caching 해뒀다가 같은 적이 Target으로 잡히면 무시해야할 겁니다.

owner.StartDash식으로 Entity에 돌진을 구현을 하지 않고 DashAttackAction.cs 자체에 Coroutine이나 Task로 Action 자체에 Entity를 돌진 구현을 하시는 방법도 있습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 심재욱님.

돌진하여 몸박 콜라이더에 닿은 피격자에게 데미지를 입히고 날리는 스킬을 구현하기 위해서는 Preceding Action에서 시전자를 이동시키고, 충돌 시 이벤트를 통해 피격자에게 효과를 적용하는 방식이 적절해 보입니다. 아래는 이와 관련된 메커니즘을 담은 용례와 추가적인 정보입니다.

구현 방법

  1. Preceding Action을 이용한 이동:

    • 스킬 시전자의 이동을 Preceding Action에서 처리합니다. 애니메이션이나 물리 기반 이동을 활용할 수 있습니다.
  2. 콜라이더와 Trigger 이벤트 활용:

    • 시전자에게 콜라이더를 부착하고, TriggerEnter 이벤트를 활용하여 피격자를 탐지합니다.
  3. Effect 적용 로직:

    • Trigger 이벤트 내에서 Detect된 피격자에게 Damage와 Knockback 효과를 전달합니다.

예시 코드

public class DashAttackAction : SkillAction
{
    public float dashSpeed = 10f;
    public float knockbackForce = 5f;
    
    private void Update()
    {
        // 스킬 시전자 이동 처리
        transform.Translate(Vector3.forward * dashSpeed * Time.deltaTime);
    }
    
    private void OnTriggerEnter(Collider other)
    {
        var entity = other.GetComponent<Entity>();
        if (entity != null)
        {
            // Effect 적용 및 피격자 날리기
            entity.ApplyDamage(damage);
            entity.Knockback(knockbackForce);
        }
    }
}

이러한 방식으로 구현하면, 돌진 스킬이 콜라이더 이벤트를 통해 피격자를 탐지하고 적절한 효과를 적용할 수 있습니다.

참고할 수 있는 유사 질문

  1. 적 스킬 관련 질문: 피격 판정을 위한 구조 구현 방식에 대한 논의.
  2. 스킬 구현 질문: 스킬의 상태 전환 및 효과 적용에 관한 구체적인 구현방법.

이 질문들은 동일한 시스템에서 다른 스킬 요소를 모듈화하고 효과적으로 구현하는데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

심재욱님의 프로필 이미지
심재욱

작성한 질문수

질문하기