728x90
반응형
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Weapon : MonoBehaviour
{
public enum Type { Melee, Range };
public Type type;
public int damage;
public float rate;
public BoxCollider meleeArea;
public TrailRenderer trailEffect;
}
스크립트를 새로 만들어서 변수들을 선언해줍니다.
근접무기 장착 시 활성화되는 오브젝트에 스크립트를 드래그&드롭해줍니다.
공격 시 이펙트를 위한 Trail Renderer 컴포넌트를 추가해 설정해줍니다.
public void Use()
{
if(type == Type.Melee)
{
StopCoroutine("Swing");
StartCoroutine("Swing");
}
}
IEnumerator Swing()
{
//1
yield return new WaitForSeconds(0.1f);
meleeArea.enabled = true;
trailEffect.enabled = true;
//2
yield return new WaitForSeconds(0.3f);
meleeArea.enabled = false;
//3
yield return new WaitForSeconds(0.3f);
trailEffect.enabled = false;
}
//Use() 메인루틴 -> Swing() 서브루틴 -> Use() 메인루틴
//Use() 메인루틴 + Swing() 코루틴 (Co-Op)
}
스크립트를 작성합니다.
애니메이터에서 Swing 애니메이션과 트리거를 작성합니다.
Swing애니메이션을 실행하며 Trail Renderer 컴포넌트를 수정해줍니다.
public class Weapon : MonoBehaviour
{
public enum Type { Melee, Range };
public Type type;
public int damage;
public float rate;
public BoxCollider meleeArea;
public TrailRenderer trailEffect;
public void Use()
{
if(type == Type.Melee)
{
StopCoroutine("Swing");
StartCoroutine("Swing");
}
}
IEnumerator Swing()
{
//1
yield return new WaitForSeconds(0.1f);
meleeArea.enabled = true;
trailEffect.enabled = true;
//2
yield return new WaitForSeconds(0.3f);
meleeArea.enabled = false;
//3
yield return new WaitForSeconds(0.3f);
trailEffect.enabled = false;
}
//Use() 메인루틴 -> Swing() 서브루틴 -> Use() 메인루틴
//Use() 메인루틴 + Swing() 코루틴 (Co-Op)
}
Weapon 스크립트를 수정해줍니다.
void Attack()
{
if (equipWeapon == null) //무기가 있을때만 실행되도록 장비체크
return;
fireDelay += Time.deltaTime; //공격딜레이에 시간을 더해줌
isFireReady = equipWeapon.rate < fireDelay; //공격가능 여부 확인
if(fDown && isFireReady && !isDodge && !isSwap)
{
equipWeapon.Use(); //조건 충족시 Use 실행
anim.SetTrigger("doSwing");
fireDelay = 0; //공격딜레이
}
}
Player스크립트에 Attack();를 추가해줍니다.
게임 뷰에서 정상적으로 작동합니다.
728x90
반응형
'유니티 > AA(3D 쿼터뷰 액션 게임)' 카테고리의 다른 글
AA(17) - 원거리무기 재장전 (0) | 2021.09.17 |
---|---|
AA(16) - 원거리무기 공격 구현 (0) | 2021.09.17 |
AA(14) - 폭탄아이템 횟수 표시&회전 (0) | 2021.09.15 |
AA(13) - 소모아이템 획득 (1) | 2021.09.14 |
AA(12) - 아이템 제작&착용&교체 (0) | 2021.09.14 |