본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 78번째 걸음-부스터의 시각적, 청각적 효과 부여 final(요약)

by 인터넷떠돌이 2018. 8. 28.
반응형

안녕하세요?


드디어 플레이어 캐릭터가 부스터를 켰는지 알 수 있도록 하는 애니메이션 효과와 효과음을 주는 작업에 대한 블로그 포스팅도 마무리를 지저야 할 때가 왔습니다. 이번 포스팅에서는 제가 이 작업을 하면서 알아낸 것 까지 모두 다 정리를 한다는 것을 겸해서 포스팅을 하도록 하겠습니다.



먼저 작업을 하기 위해서 PlayerController.cs 스크립트를 열도록 합니다.



그리고 필요할 때 마다 스프라이트를 켜고 꺼야 할 필요가 있기에, 위 스크린샷처럼 SpriteRender형식의 광역 변수를 먼저 선언을 해 주도록 합니다.



그리고 역시 비어있는 유니티5의 PlayerController.cs 컴포넌트에다가 boosterController게임 오브젝트를 드래그 앤 드롭으로 갖다 놓도록 합니다.



그리고 나서 a키를 누르면 스프라이트의 enabled가 true, a키를 떼면 false가 되도록 스크립트를 코딩합니다.




그리고 이번에는 유니티5로 돌아와서 boosterController게임 오브젝트를 선택 하도록 합니다.



그리고 원래는 체크표시가 되어 있는 부분을 떼도록 합니다.



이번에는 a키를 누르지 않았을 때 제대로 부스터를 쓴다는 애니메이션의 스프라이트가 표시되지 않는 것을 확인할 수 있었습니다. 그리고 a키를 눌렀을 때는 제대로 표시가 되는 것을 확인할 수 있었습니다. 이제 부스터의 애니메이션 처리는 성공했으므로, 효과음을 처리할 차례입니다.



이번에도 역시 PlayerController.cs를 찾아 가도록 합니다.




이번에는 AudioSource라는 형식의 광역변수를 선언하도록 합니다.



그리고 역시나 이번에도 boosterController를 드레그 앤 드롭으로 끌어다 AudioSource타입 변수에다가 놓도록 합니다.



그리고 a키를 눌렀을 경우 변수.Play(); 라고 입력을 하고, a키를 떼었을 경우 변수.Stop(); 이라고 입력을 하도록 합니다.



이것으로 부스터의 시각적인 효과와 청각적인 효과를 적용하는 것에 성공을 하였습니다. 이번 작업을 하면서 우선 애니메이션을 적용하기 위해서는 아래와 같은 원칙이 적용이 된다는 것을 알 수 있었습니다.


1. 먼저 animator controller를 지정하고, animation 윈도우에서 각각 상태별로 관계도를 그린다.

2. 이번 부스터같은 경우는 아무런 애니메이션도 없는 빈 State가 필요하며, 여기서 왕복으로 booster의 애니메이션과 왕복이 되어야 한다.

3. 다음으로 animation 윈도우의 parameter에 bool타입의 변수를 준다.

4. 그리고 오고가는 화살표를 animation윈도우에서 직접 클릭해서 Condition에 parameter에서 지정한 변수가 어떤 값을 지닐때 어떤 상태로 전환이 되는지를 표시한다.

5. 다음으로 스크립트상에서 먼저 Animator 형식의 광역변수를 선언해서 유니티5 상에서 Animator컴포넌트가 있는 게임 오브젝트를 끌어서 가지고 온다. [절대로 GameObject형식의 변수를 선언해서, 게임 오브젝트를 끌고오는 것이 아니다. 다만 코딩을 잘못해서 인지 컴포넌트를 끌고오는 것에 실패하였다.]

6. if문에서 조건에 따라 Animator형식의 변수가 bool타입의 값을 리턴할 경우 어느 조건에서 true가 되느냐, false가 되느냐를 결정해야 한다.


번외. 작성하고 있는 스크립트가 달려있는 게임 오브젝트가 아닌 다른 게임오브젝트에 있는 컴포넌트를 가지고 올 경우에는 광역 변수를 선언하는데 GameObject를 변수선언하지 말고, public 컴포넌트에 따른 변수타입 변수; 이런 식으로 스크립트 상에서 선언한 다음, 유니티5 상에서 게임 오브젝트를 끌고와야 한다. 즉, 같은 게임 오브젝트라도 여러개의 컴포넌트를 가지고 오려고 하면, 광역변수를 여러번 선언한다.


이것으로 부스터가 가동되었다는 효과를 주는데는 성공했다는 생각이 듧니다. 다만, 효과음의 종류가 조금은 마음에 들지 않는데, 다음번에는 더 나은 효과음을 쓰도록 해야 겠습니다.

반응형