돌진해서 몸박을하면 피격자를 날리면서 데미지를 입히는 스킬은 이 시스템에서 어떻게 만들 수 있을까요??
116
작성한 질문수 9
스킬 시전자를 Preceding Action에서 이동을 시키면서 몸박 콜라이더에 닿는 타겟에게 Effect를 Apply 시켜야할 것같은데.. 구조상으로는 Target에게 Effect를 적용시키는 InActionState와 Preceding Action State가 분리가 되어있어서 조금 생각하기 어려운것같습니다.
답변 2
0
수강해주셔서 감사합니다.
돌진 부분 전체를 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에서 시전자를 이동시키고, 충돌 시 이벤트를 통해 피격자에게 효과를 적용하는 방식이 적절해 보입니다. 아래는 이와 관련된 메커니즘을 담은 용례와 추가적인 정보입니다.
구현 방법
Preceding Action을 이용한 이동:
- 스킬 시전자의 이동을 Preceding Action에서 처리합니다. 애니메이션이나 물리 기반 이동을 활용할 수 있습니다.
- 스킬 시전자의 이동을 Preceding Action에서 처리합니다. 애니메이션이나 물리 기반 이동을 활용할 수 있습니다.
콜라이더와 Trigger 이벤트 활용:
- 시전자에게 콜라이더를 부착하고, TriggerEnter 이벤트를 활용하여 피격자를 탐지합니다.
- 시전자에게 콜라이더를 부착하고, TriggerEnter 이벤트를 활용하여 피격자를 탐지합니다.
Effect 적용 로직:
- Trigger 이벤트 내에서 Detect된 피격자에게 Damage와 Knockback 효과를 전달합니다.
- 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);
}
}
}
이러한 방식으로 구현하면, 돌진 스킬이 콜라이더 이벤트를 통해 피격자를 탐지하고 적절한 효과를 적용할 수 있습니다.
참고할 수 있는 유사 질문
- 적 스킬 관련 질문: 피격 판정을 위한 구조 구현 방식에 대한 논의.
- 스킬 구현 질문: 스킬의 상태 전환 및 효과 적용에 관한 구체적인 구현방법.
이 질문들은 동일한 시스템에서 다른 스킬 요소를 모듈화하고 효과적으로 구현하는데 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Indicator와 SelectionAction 및 SearchAction 간의 관계에 대해 질문있습니다.
0
72
2
ChargingState에서 질문이 있습니다.
0
50
1
Effect.GetData 함수 질문있습니다.
0
45
2
CanTransitionToSelf 질문 있습니다.
0
53
2
Stat의 MaxValue에 관하여 질문이 있습니다.
0
42
1
Stat vs StatScaleFloat
0
77
4
애니매이션 버그가 있는것 같습니다.
0
65
2
StatsOverride질문이 있습니다.
0
50
2
SetBonusValue함수 질문있습니다.
0
46
2
오늘 수강시작한 취준생입니다.
0
49
1
사소하지만 에디터 관련 질문있습니다
0
69
1
스킬시스템을 데이터 테이블화 하는 법에 대해 감이안잡혀서 질문드립니다.
0
147
2
TargetSearcher에 대해서 질문이 있습니다
0
52
1
스킬 관련 질문입니다
0
110
2
통일된 Stat을 사용하지 않고 모듈화 방식으로 Stats를 만드신 이유가 궁금합니다.
0
152
1
Effect에 기능 확장에 대해서 질문이 있습니다.
0
149
2
SkillData 구조체 질문
0
122
1
스킬트리 저장 질문입니다
0
135
2
BT와 FSM을 활용해 몬스터 AI 구현
0
351
2
MonoStateMachine을 만든 이유가 잘 이해가 가지 않습니다.
0
128
1
근접 콤보 공격을 만들고 싶습니다.
0
153
1
하나의 스킬 내에서 타겟, 이펙트가 여러번 바뀌게 하는 방법이 궁금합니다.
0
190
1
올해에 예정된 새로운 강의가 있으신지요?
0
115
2
스킬트리 질문입니다
0
153
3





