[내일배움캠프 TIL] 31. 타격감을 주는 방법

2023. 10. 31. 19:54내일배움캠프 Unity

오늘은 '타격감을 주기 위한 방법'들을 알아보았다.

1. 카메라 쉐이크

2. 넉백

3. 이펙트(파티클 시스템)

4. 스크린 플래쉬

5. 줌 인

6. 타임 스탑

이러한 방법들을 공부하고 구현해 보았다.

 

0. 테스트씬 제작

  • 각 이펙트를 실행시켜줄 버튼과 플레이어, 땅을 세팅한다.

 

1. 카메라 쉐이크

  • 카메라 위치를 일정시간마다 랜덤위치로 이동시키는 것으로 카메라가 흔들리는 것을 표현했다.
  • 캐릭터의 피격이나 화기의 반동을 표현할 때 유용하다.

 

2. 넉백

 
  • RigidBody.AddForce() 메소드나 veolcity를 조절 해 넉백을 구현한다.
  • 넉백 되는 힘을 조절해 충격량을 표현할 수 있다.
  • 피격이나 적을 타격할 때 유용하게 쓰인다.

 

3. 이펙트(파티클 시스템)

  • 파티클 이펙트를 만들고 타격되는 위치에서 Play() 메소드로 실행한다.
  • 원하는 머테리얼을 적용해 다양한 파티클 이펙트를 만들 수 있다.

 

4. 스크린 플래쉬

  • 화면의 색깔을 일정시간 변경하는것으로 구현했다.
  • 피격 혹은 궁극기 사용등을 표현할 때 용이하다.

 

5. 줌 인

  • 카메라의 orthographicSize를 public으로 선언해 에디터에서 그래프를 조정할수 있게 했다.
  • AnimationCurve의 Evaluate(t)를 조절하여 표현했다.
  • 공격을 강조할 때나 대전 게임류에서 승 패가 정해졌을 때 쓰기 좋다.

 

6. 타임 스탑

  • Time.timeScale을 0으로 만들어 시간을 정지하고 코루틴의 WaitForSeconds를 사용해 일정시간이 지난 뒤 정지가 풀리도록 구현했다.
  • 공격이나 이펙트 등을 강조할때 유용하다.

 

7. 모두 합쳐보자

  • 타격감을 올리기 위해 만든 이펙트들을 모두 합쳐보았다.
  • 어울리는 이펙트들만 골라 적용하는 것이 가장 좋겠지만 그럴듯한 결과물이 나온 것을 확인할 수 있다!!

 

[작성한 코드]