본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quater - 근접공격이펙트, 근접공격 구현

1.Weapon 스크립트 작성(변수)

*TrailRenderer 무기이펙트 스킬

 - Weapon 스크립트 작성 후 플레이어의 오른팔에 비활성화 상태로 들어있는 무기오브젝트에 스크립트를 넣어주고

 - 타입, 공격속도, 근접공격범위, 근접공격이펙트 변수를 public으로 선언하여 무기오브젝트중 망치 오브젝트의

   인스펙터창에서 할당해준다

 - 망치오브젝트에 박스콜라이더를 생성하여 자기 자신오브젝트를 public BoxCollider 변수에 드래그 앤 드랍한다

 

 

 - 망치오브젝트 안에 자식 오브젝트로 *TrailRenderer(우클릭 ->create ->effect)를 생성하고 위치를 망치머리부분으     로 조정해준다

 -  width 그래프에서 우클릭으로 point를 생성하여 시간이 지날수록 이펙트가 좁아지도록 드래그하여 그래프 모양을        다듬어 준다

 - Time을 조절하여 이펙트시간을 조절하고 Min Vertex Distance가 높을수록 이펙트가 각져진다

 - 색깔을 조절해주고 해당 오브젝트를 망치오브젝트의 public 선언되어 있는 TrailRenderer에 드래그 앤 드랍해준다

 

- 이 후 망치오브젝트안의 박스콜라이더와 Trail오브젝트를 비활성화 시켜주고 코드로 이들을 작동시켜보자

 

2 .Weapon 스크립트 작성(근접공격 코루틴)

*stopCoroutine(스탑코루틴) 사용법 중요 스킬

 

Weapon스크립트
Player스크립트

 

 

 

 

 

 

*버그 발생 

근접공격하자마자 닷지를 하면 닷지 애니메이션이 씹히는 현상 발생, 기존코드 (조건 !isDodged로 하면 닷지딜레이로 활용한 isDodged가 true인 3초동안 공격도 못하는 버그 발생) 버그 발생 

 

*문제 해결 

닷지 딜레이를 추가해주고 근접공격 후 0.2초가 지난 후에야 닷지를 할수 있도록 하여 디버깅