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

고우진님의 프로필 이미지
고우진

작성한 질문수

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

목표 검색을 위한 TargetSearcher와 Skill 범위 표시를 위한 Indicator

전투시스템과 결합하려고 합니다.

작성

·

70

0

현재 강의에서는 탑뷰 형식의 AOS와 적합한 스킬 사용 방식이기에 제가 개발하려는 전투시스템에 맞춰서 공격 판정을 콜라이더를 주로 사용하려고 합니다.


공격을 실행하면 애니메이션 시작과 동시에 스킬이 발동되게 하고 애니메이션 이벤트를 활용해서 특정 구간에 콜라이더를 활성화 해준 다음 비 활성화해주고 애니메이션이 끝나면 스킬이 종료되는 방식으로 공격을 구현하려고 하는데 많이 비효율적일까요.

 

학습한 내용을 이해한거로는 투사체 스킬은 Targetsearcher은 연관이 없고 인디케이터가 공격할 좌표만 정해주고 캐릭터를 해당 좌표를 향해 회전해주고 발사하는 것이기에 Targetsearcher와 인디케이터를 전부 없애버리고 투사체 스킬의 투사체 생성 대신에 소켓을 이용해서 공격판정 무기를 찾은 다음 해당 스킬 스크립트를 생성시켜준 다음에 애니메이션 이벤트로 콜라이더를 활성화 비 활성화로 공격 판정을 구현하고 공격 애니메이션이 끝나면 해당 스크립트를 삭제시켜주는 방식으로 구현을 생각중입니다.

혼자서 독학 중이라 다른 사람들의 개발 방식을 볼 때마다 제 방식에 대한 확신을 가지지 못하는 것 같습니다.

답변 2

1

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

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

비효율적인지는 실제 코드를 보지 않는 이상 알 수 없는지라 지금 말씀드릴 수 있는건 아니구요, 조언 드릴 수 있는 부분은 일단 만드시고 문제가 생기면 그때 생각하시라는겁니다. 개발 경험이 적으면 아무리 고민해도 만들어낼 수 있는 결과물에 한계가 존재합니다. 그렇기 때문에 더 나은게 있지 않을까 끝 없이 고민하기 보다는 어느 정도 구상이 되면 만들고, 결과물에서 문제점을 파악하고, 개선하고, 다시 문제점을 파악하고, 개선하고 이 루틴을 반복하며 경험을 쌓는게 중요합니다.

말씀해주신 내용은 전투 시스템의 개발을 시작하는 초기 단계의 아이디어로써 나쁘지 않다고 보구요, 에셋스토어에서 잘 팔리는 전투 시스템 에셋을 구매해서 로직을 분석하거나 유튜브에서 관련 강좌를 보는 것도 고민 해결에 큰 도움이 되실겁니다. 요즘은 좀 덜하지만 저도 옛날엔 오픈소스나 에셋들을 엄청 많이 분석했었습니다.

감사합니다.

고우진님의 프로필 이미지
고우진
질문자

좋은 조언과 강의 감사합니다

0

안녕하세요, 인프런 AI 인턴입니다. 고우진님.

다크소울과 몬스터헌터 같은 게임의 근접공격을 구현하려면 몇 가지 요소를 고려하여 액션을 설계해야 합니다. 무기 콜라이더를 사용하는 방법은 적절한 접근입니다. 아래에 관련된 유사한 질문들을 참고할 수 있는 링크와 간단한 요약을 제공드리겠습니다.

관련 질문 URL:

  1. 적 스킬 관련 질문

    • 내용 요약: Projectile 스킬을 사용하는 적의 스킬 구현 방법에 대한 논의.
    • 이미지:
      image

스킬 액션에 새롭게 콜라이더를 이용한 피격 판정을 결합할 수 있는 방법을 설명합니다.

  1. 스킬 구현 질문

    • 내용 요약: 그레이브즈 Q와 같은 스킬 구현을 위한 조언.
    • 이미지:
      image

스킬의 다양한 요소를 모듈화하여 Projectile과 SkillObject를 활용하는 방법에 대해 설명합니다.

간단한 개요:

근접공격의 기본 개념:

  1. 무기 콜라이더 설정:

    • 무기 모델의 콜라이더를 사용하여 피격 판정을 처리합니다.
    • 애니메이션 이벤트나 타이머를 활용하여 콜라이더 활성화/비활성화 시점을 조절합니다.
  2. 애니메이션 연동:

    • 애니메이션 이벤트를 활용하여 공격 시점에 맞추어 콜라이더를 활성화합니다.
    • 공격 범위와 각도를 기반으로 타겟을 탐지합니다.
  3. 스킬 액션 커스터마이징:

    • 새로운 액션 클래스를 만들어 무기 콜라이더의 활성화/비활성화 로직을 추가합니다.
    • 기존의 투사체 스킬과 유사하게 소켓을 이용하여 적중 시 효과를 트리거할 수 있게 설계합니다.

예시 코드:

public class MeleeAttackAction : SkillAction
{
    public Collider weaponCollider;

    public void StartAttack()
    {
        weaponCollider.enabled = true;
        // 필요시 추가 로직 (피격 판정) 작성
    }

    public void EndAttack()
    {
        weaponCollider.enabled = false;
    }
}

이러한 방식으로 구현하면 근접 공격과 같은 다양한 스킬을 손쉽게 관리할 수 있습니다.

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

고우진님의 프로필 이미지
고우진

작성한 질문수

질문하기