본문 바로가기

Unity 도전하기

2D Unity Game 예제소스 따라하기 7p

오늘은 Unity Study 예제 소스 따라 하기 마지막 날이다
일단은 게임의 레벨 표시와 Player의 현재 체력을 표시하는 UI를 만든다
GameObject - UI - Canvas를 우선 만들고
Canvas의 자식으로 GameObjct - UI - Image를 만들고
View를 Scene로 변경 후 원하는 위치에 Anchor Presets을 설정한다
생성한 Image의 이름을 LevelImage로 변경 후
LevelImage를 선택하고 GameObject - UI - Text를 만들고 LevelText로 이름을 변경하고
Text의 크기를 조정하면 Text가 Scene에서 사라질 텐데
Horizontal, Vertical OverFlow의 값을 OverFlow로 변경해주면 된다. 그리고 font에서 원하는 font asset을 선택할 수 있다
LevelText를 LevelImage의 자식으로 넣어주어 LevelImage를 숨겼을때 같이 안 보이게 하자

그리고 체력을 표시할 UI도 LevelImage의 자식으로 넣는 것만 빼고 똑같이 만들어준다

이제 Scripts로 돌아가서 using UnityEngine.UI;를 추가해주어 방금 만든 UI를 제어할 수 있게 한다

그리고 Unity에서 제공하는 새로운 씬이 호출될 때마다 실행하는 OnLevelwasLoaded 함수를 생성하여 UI를 함께 제어한다

그리고 이번에는 Invoke 함수를 사용해보았다
Invoke는 Parameter로 시간과 함수명을 받아 지정시간 후 해당함수를 실행한다고 함

그리고 Player Scripts에서 아이템을 먹으면 체력이 올라가는 것을 보여주기 위해 using UnityEngine.UI;를 하고 
변수로 추가한 Text를 아이템 습득 시 변경해주고 이동 시에도 체력 Text를 -로 계산하여 변경해준다

그리고 Player Scripts에 추가한 UI.Text를 Editor에서 생성한 GameCompnent Text를 Player의 Scirpts에 Drag & Drop한다

이제 Sound를 넣기위해

Editor에서 Create - Empty를 만들고 간단하게는 호과음, 배경음을 위해 1개의 GameObject에 Compnent를 2개 더한다

SoundManger를 클릭하여 AddCompnent에서 Audio Source를 선택하고, 한개 더 Add한다.

이제 Scripts를 SoundManager로 추가하고 변수로 AudioSource를 두개 선언한다.

그리고 PlayAudioSingle함수를 생성 입력은 AudioClip을 입력받아 AudioSource를 Play한다.

Editor로 돌아와서 작성한 Scripts를 SoundManager에 Drag Drop하고, 변수로 선언한 AudioSource에 

전에 AddCompnent했던 AudioSource를 Drag Drop한다.

 

그리고 Player에서 반응에 따른 Audio Clip Play를 위해

싱글톤으로 작성하였던 SoundManager와 SoundManager의 함수들을 사용하여 Clip을 Play, Stop 한다

 

오늘은 Game의 마무리로 UI, Audio 추가로 Game을 거의 다 완성하였고,

Audio도 추가해보았다. 따라 하기에서는 질리는 Audio를 위해 Random 한 값으로 위아래 음역대를 달리해서 사용하였는데 좋은 것 같다.

꼭 나중에 써먹어야겠다ㅎㅎ