📌 공격하고 되돌아옴[ 완료 ]
<아마 예외처리 많이 필요하겟지 ,아닌가
이미 필드에 잇는 하수인을 한번 클릭하면 화살표가 나오게 하고싶은데, 그리고 목적지를 선택하면 그곳으로 돌진햇다가, 원래 자리로 돌아오는,
아마 draw관련 움직이는 스크립트 추가한것처럼 스크립트 추가하면 되나
하스스톤처럼 하수인이 대상을 향해 돌진(Dash)했다가 원래 자리로 돌아오는 연출을 추가하려면, MinionAttack.cs의 ExecuteAttack 부분을 코루틴(Coroutine) 기반으로 수정해야 합니다.
또한, 공격하는 동안 하수인이 부모(필드의 LayoutGroup)에서 빠져나와도 자리가 유지되도록 Placeholder(빈 칸 생성) 로직이 포함되어야 합니다.
"피해를 1씩만 입음" 같은 특수 효과는 어떻게 구현하나요?
이런 종류의 효과(피해 감소, 천상의 보호막, 피해 면역 등)는 데미지를 주는 쪽이 아니라 **데미지를 받는 쪽(TakeDamage 함수 내부)**에서 처리하는 것이 가장 깔끔합니다.
모든 데미지는 결국 CardDisplay.cs나 Hero.cs의 TakeDamage(int amount)를 통과하기 때문입니다.
공격하는 하수인(MinionAttack)이 상대가 1만 받는지, 0만 받는지 일일이 검사할 필요가 없습니다. 공격자는 그냥 "나 3만큼 때릴게!"라고 던지고, 받는 쪽에서 "난 1만 받을게"라고 처리하는 것이 객체지향적인 설계입니다.
📌 소리추가도 할수있나, 유니티
팁: 하수인마다 다른 소리를 내고 싶다면?
나중에 하수인마다 "공격 대사"나 "특수 공격 소리"를 다르게 하고 싶다면, Card.cs(ScriptableObject)에 AudioClip attackVoice 변수를 만들고, MinionAttack에서 그 소리를 가져와 재생하게 하면 됩니다.
유니티 인스펙터(Inspector) 칸에 윈도우 탐색기에 있는 파일을 직접 넣으려고 하면 안 들어갑니다. 유니티의 작동 방식 때문인데요, 다음과 같이 하셔야 합니다.
- 유니티 프로젝트 창(Project Window)에 먼저 넣기: 윈도우 폴더에 있는 하스공격.mp3 파일을 유니티 에디터 하단의 Project 탭(Assets 폴더 안)으로 먼저 드래그해서 넣으세요. (말씀하신 대로 Sounds 같은 폴더를 하나 만들어서 관리하면 더 깔끔합니다.)
- 프로젝트 창에서 인스펙터로 넣기: 유니티 프로젝트 창에 들어온 파일을 클릭해서 SoundManager 스크립트의 Hit Sound 칸으로 드래그하면 정상적으로 들어갑니다.
코루틴(Coroutine)의 특성을 이해하면 아주 쉽게 해결됩니다. 코루틴 내부의 while 문은 조건이 만족될 때까지 코드의 다음 줄로 넘어가지 않고 기다려주는 역할을 합니다.
따라서 while 루프 바로 아래에 소리 재생 코드를 두면, 정확히 이동이 끝난(시간이 다 된) 순간에 소리가 나게 됩니다.
📌 그리고 영웅 체력이 0이하가 되면 게임 종료
주의: 만약 유니티 에디터(Inspector)의 Hero 오브젝트에서 숫자를 이미 30으로 입력해 두었다면, 코드만 수정해서는 안 바뀌고 인스펙터 창에서 직접 5로 수정해야 적용됩니다.


체력 0인데 패널이 안뜸
'개발 > 하스스톤+전장' 카테고리의 다른 글
| 하스+전장) 제네틱 vs 명시적 형 변환 차이: 조건문 (0) | 2026.01.28 |
|---|---|
| 하스+전장)minionAttack.cs/turnManager.cs 해석 (0) | 2026.01.28 |
| 하스+전장)하수인 로직 강화 (0) | 2026.01.27 |
| 하스+전장) draggable .cs, carddraw.cs 해석 (1) | 2026.01.27 |
| 하스+전장) 인터페이스,제네틱 쓰는 이유 (0) | 2026.01.26 |