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

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

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

안녕하세요?


지난번 포스팅에서 무언가 부스터의 에니메이션 부여가 되기는 되었는데, 문제는 이상하게 부여가 되었다고 했습니다. 그래서 이 문제를 해결하기 위한 시행착오를 이번 포스팅에 올려 보고자 합니다.



이번에는 애니메이션 컨트롤러(animation controller)를 새로 생성하기 위한 작업에 들어갑니다.



이렇게 해서 Player항목에 boostController라는 것을 새로 만드는 데 성공했습니다.



그리고 새 자식 오브젝트를 설정하도록 합니다.



여기서 애니메이션 설정을 하는데, booster라는 애니메이션을 Entry가 되자마자로 처음에 설정했습니다.



그 다음에 이 새로운 자식 오브젝트에 Animator컴포넌트를 추가해 주도록 합니다.



그 다음에는 미리미리 사운드를 부여할 준비를 위해서 미리 SoundBible에서 받아온 효과음을 가지고 오도록 합니다.


 

그리고 새로만든 자식 오브젝트인 boostController에다가 Audio Source를 설정해 놓고 나서, 위 스크린샷처럼 설정을 해 주도록 합니다.



이제 PlayerController.cs 스크립트로 가서, 위 스크린샷처럼 Animator라는 새로운 변수를 선언해 주도록 합니다.



그 다음으로 유니티5로 돌아가서, Player 오브젝트를 선택하도록 합니다.



그리고 인스펙트뷰에서 새로 추가된 변수에 새로 만든 게임 오브젝트인 boostController를 드레그 앤 드롭으로 추가해 주도록 합니다.



다음으로는 boost의 버튼인 a키를 누를 때 마다 booster의 사운드를 재생하라고 설정을 했습니다.


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




애니메이션이 재생되지 않아서 위 그림처럼 Animator 윈도우에서 설정을 바꾸어도 주었습니다만, 그다지 효과는 없었습니다.



거기다가 위 처럼 이런 애러가 나는 것을 볼 수 있었습니다.



아무래도 AnyState에 연결된 것이 문제라고 생각해서 위 스크린샷처럼 설정을 바꾸어 보았습니다.



그래서 이렇게 GetComponent 명령을 안 주어서 생기는 것인가 싶어서 Start()메소드에서 위 스크린샷처럼 GetComponent 명령을 주기도 했습니다.



하지만 그래도 이렇게 에러가 뜨면서 애니메이션은 재생이 되지 않는 것이였습니다. 그래서 한동안 어디가 문제인지 몰랐습니다.


그래서 이전에 있던 애니메이션 설정에서 어디가 다른지 몰랐는데, 나중에 알아 보니까, 이렇게 연결한 화살표를 클릭하면




그렇게 Conditions라는 항목이 있는 것을 볼 수 있었습니다. 즉, 여기를 설정하지 않아서 애니메이션이 재생되지 않았던 것이였습니다.



그래서 먼저 위에서 처럼 getComponent구문이 문제라는 생각이 들어서, 이를 주석처리 하였으며...



그 다음으로는 boostController 게임 오브젝트에 Sprite Renderer를 추가하도록 했습니다. 제 아무리 애니메이션 파일이 있더라도, Sprite Renderer가 없으면, 재대로 애니메이션이 재생되지 않는 것 입니다.



다음으로 boosterController 게임 오브젝트의 위치를 옮기는 작업도 하였습니다.



그 다음으로 잊지말고 SpriteRenderer에 Booster1을 추가하는 것을 잊지 말도록 합니다.



일단은 완성이 되기는 했는데, 문제가 발생했습니다. 평상시에는 부스터가 되는 모습이 나오면 안되는데, 계속 나와 있는 모습이라는 것을 볼 수 있습니다. 이렇기 때문에 다음 포스팅에서는 이를 평상시에 숨기는 것을 올릴 것을 약속드리며, 이번 포스팅은 여기서 마치도록 하겠습니다.

반응형