유니티 3D 쿼터뷰 액션게임 만들기
👾 메인 액션 - 근접공격 구현하기 👾
1. 변수 생성
무기 정보가 있는 새로운 스크립트 생성
Player 손에 있는 무기 컴포넌트에 무기 스크립트 추가
근접 공격과 원거리 공격이 있기 때문에 해당 타입을 정해줄 열거형을 사용
무기 타입, 데미지, 공속, 범위, 효과 변수 생성
2. 근접 공격 범위
- 공격 범위가 될 Collider의 위치, 크기 조정
- Weapon 스크립트의 Melee Area (Box Collider)은 미리 만들어둔 공격범위 변수에 할당
- 근접공격 태그를 새로 생성하고 지정 (Melee)
- Is Trigger 체크 활성화
3. 근접 공격 효과
Trail Renderer
잔상을 그려주는 컴포넌트
- Material 설정하기
- 꼬리모양을 내도록 Width Curve 설정
- Time 값을 줄여서 잔상 길이를 짧게 조절
- Min Vertex Distance로 잔상 꺾임을 설정 (값이 클수록 각진 모양이 나옴)
- Color로 잔상 색상을 설정
- 완성된 Trail Renderer를 변수에 할당
- 우선! Effect의 Trail Renderer와 Weapon Hammer의 BoxCollider는 비활성화
4. 공격 로직 - 코루틴
✏️ Player가 무기를 사용하는 로직
- 코루틴 함수를 이용한 컴포넌트 활성화/비활성화 반복
- 꺼둔 Trail Renderer를 킴
- Trail Renderer와 BoxCollider를 시간차로 활성화 컨트롤
👾 일반 함수
메인 루틴 ➡️ 서브루틴 ➡️ 메인루틴 (교차실행)
👾 코루틴 함수 Co-Routione
메인루틴 + 코루틴 (동시실행)
📌 IEnumerator
열거형 함수 클래스
📌 yield
결과를 전달하는 키워드 (코루틴 함수에서 꼭 한개이상 있어야 함 )
yield 키워드를 여러 개 사용하여 시간 차 로직 작성 가능
📌 WaitForSeconds()
주어진 수치만큼 기다리는 함수
Trail Renderer와 BoxCollider를 시간차로 활성화 컨트롤
yield return new WaitForSeconds(0.1f);
meleeArea.enabled = true;
trailEffect.enabled = true;
yield return new WaitForSeconds(0.3f);
meleeArea.enabled = false;
yield return new WaitForSeconds(0.3f);
trailEffect.enabled = false;
0.1초 대기하고 collider meleeArea 활성화, trailEffect 활성화
0.3초 대기하고 collider meleeAra 비활성화
0.3초 대기하고 trailEffect 비활성화
📌 yield break
코루틴 탈출 가능
📌 StartCoroutine("문자열")
코루틴 실행 함수
📌 StopCoroutine("문자열")
코루틴 정지 함수
5. 공격 실행
🔻 Player 로직에서 키입력, 공격딜레이, 공격준비 변수 선언
bool fDown; //키입력
bool FireReady; //딜레이
float fireDelay; //준비완료
🔻 기존에 지정해둔 현재장비 변수를 Weapon 타입으로 변경
Weapon equipWeapon;
🔻 공격함수 및 입력버튼 추가
void Update()
{
Attack();
}
void GetInput()
{
fDown = Input.GetButtonDown("Fire1");
}
🔻 공격 중에는 이동 불가되도록 설정
bool FireReady = true;
'유니티' 카테고리의 다른 글
유니티 3D 쿼터뷰 액션게임 - Player 물리문제 고치기 / 벽 관통 방지 / 아이템 고정 (0) | 2022.04.23 |
---|---|
유니티 3D 쿼터뷰 액션게임 - 원거리 공격 구현 / Instantiate() / Raycast / 마우스 방향으로 회전 (0) | 2022.04.23 |
유니티 3D 쿼터뷰 액션 게임 - 아이템 먹기 / 공전 물체 만들기 / RotateRound() (0) | 2022.04.21 |
유니티 3D 쿼터뷰 액션게임 - 드랍 무기 입수와 교체 (0) | 2022.04.20 |
유니티 3D 쿼터뷰 액션 게임 - 아이템 만들기 / Prefeb / Light Effect / Particle Effect (0) | 2022.04.19 |