본문 바로가기
반응형

tips/유니티 게임만들기10

유니티 강좌 10 - 알키우기1. 2D 스프라이트의 레이어 1. 게임 내용 설계 한동안 정말 흔했던 게임 클리커를 만들어 본다. 게임 시스템은 보기보다 단순한데, "화면을 마구 터치하면 화면 가운데 있던 알이 조금씩 깨져 병아리가 태어나고, 계속 마구 터치하면 병아리가 점점 자라 닭이된다. 다큰 닭은 새로운 알을 낳고 사라진다. 이렇게 태어난 닭이 점점 늘어날 수록 게임의 재미를 더할 닭 업그레이드 자원으로 사용되고, 업그레이드된 닭이 태어나면 더 많은 자원을 생산한다." 중요한 몇 가지 요소만 따온 본격 닭키우기 클리커게임으로, 이 시스템을 보자마자 어떻게 만들지 감이 왔다면 이 강좌가 수준이 낮을 수 있으니 좀더 고급진 강좌를 찾아 떠나도록 하자. 이 내용은 완전히 유니티나 C#프로그래밍을 모르는 분들이 따라해보며 친숙해지는 과정 2번째 코너로, 매우 단순하.. 2021. 4. 2.
유니티 강좌 9 - 총알 피하기 9/9. 태그와 배열, 안드로이드 빌드 1. 다시 시작하기 UI uiEnd 안에 Button 게임오브젝트를 생성하고 이름을 btnRestart로 변경하여 적당히 위치를 조절한다. btnRestart에 있는 Text에 글씨를 입력하여 위와 같이 RESTART로 표시되게 하자. 게임이 끝난 위 화면 상태에서 RESTART 버튼을 누르면 uiEnd를 숨기고 난 뒤 화면안에 있는 모든 총알을 제거하고 시간을 0으로 되돌려야 새로운 게임이 시작되는 것과 같아진다. GameController.cs 에 PressRestart( ) 함수를 새로 추가한다. 다시 시작 버튼을 눌렀을 때 작동 할 함수이며, 이곳에서 시간을 0으로 변경해주고, uiTime도 즉시 변경된 sec의 값이 표시되도록 해준다. 앞서 GameObject를 비활성화 했던 것과 같은 방법으로.. 2021. 3. 28.
유니티 강좌 8 - 총알 피하기 8/9. 시간계산과 Text 출력 1. 게임 시작 후에 총알 생성 총알은 GameController.cs 의 Start( )에서 MakeBullet( )을 호출하여 만들어진다. 7편에서 게임 시작 UI를 넣었기 때문에, 이제는 Start( )에서 자동으로 시작되지 않고, 게임 시작 버튼을 누르면 총알이 생성되기 시작하도록 바꾸어주자. Start( )에 있던 반복호출문을 PressStart( ) 안으로 옴기면, 하려던 작업은 끝이 난다. 유니티 에디터에서 플레이를 시키고 Hierarchy에 있는 uiStart의 인스펙터에서 비활성화를 시켜보자. 게임이 실행된 상태이지만 총알이 생성되지 않고 있다. 다시 인스펙터에서 uiStart를 활성화 시키고 시작 버튼을 눌러보자. 그 때 부터 총알이 만들어지는게 보이면 순조롭게 잘 작동 되는 것이다. .. 2021. 3. 26.
유니티 강좌 7 - 총알 피하기 7/9. RectTransform과 오브젝트 비활성 1. 총알 파괴 6편의 마지막에 주어진 미리해보기에 있던 내용이다. player에 총알이 닿으면 총알 게임오브젝트는 자기 할일을 다 했으니 더이상 씬에 필요하지 않으므로 즉시 파괴해서 없애버린다. 이 시리즈의 총알 생성하는 과정에서 사용했던 Destroy( )에 player에서 충돌을 감지했을 때 전달받은 Collider2D형 변수 collider에 .gameObject를 사용, 게임오브젝트를 얻어내어 던져준다. 즉시 파괴해야하므로 지연시간을 따로 주지 않는다. 그 아래에는 자주 등장했던 Debug.Log( )를 사용하여 게임이 끝났음을 출력하여 확인해보자. 2. 게임시작 UI 이제 게임 시스템은 계획했던 만큼 마무리가 거의 되었고, 조금 게임스럽게 포장하기 위해 게임 시작화면을 만들자. GameObje.. 2021. 3. 26.
유니티 강좌 6 - 총알 피하기 6/9. 콜리더와 충돌 감지 1. 총알 충돌체 만들기 이제 총알이 player에 부딪히면 충돌했음을 감지하여 게임을 끝낸다. 여기에서는 게임오브젝트에 Collider라는 오브젝트의 충돌범위를 만들어주는 콤포넌트를 사용한다. bullet 프리팹의 Inspector에서 Add Component를 선택하고, collider 2D를 입력하고 검색결과로 나타난 목록 중에서 Circle Collider 2D를 눌러 추가한다. 동일한 이름으로 2D 글씨만 없는 것들은 3D에 쓰인다. Project의 bullet 프리팹을 더블클릭하면 프리팹의 내용물이 씬으로 보여진다. Hierarchy의 bullet을 선택하면 총알 스프라이트에 초록색 테두리가 나타나는데, 이 초록색 테두리가 바로 Collider이다. 초록 테두리 안쪽이 충돌되는 영역이 되며 충.. 2021. 3. 22.
유니티 강좌 5 - 총알 피하기 5/9. 버튼 이벤트와 Canvas 1. Button 오브젝트와 Canvas 플레이어를 이동시킬 조이스틱은 아날로그 스틱형태로 만들기엔 내용이 아직 복잡할 수 있으니, 간단한 십자 버튼 형태로 만든다. GameObject > UI > Button으로 씬에 버튼 게임오브젝트를 하나 생성한다. 이번에 생성한 버튼 게임오브젝트는 지금까지 만들었던 게임오브젝트들과 다른 경로에 생성이 되었다. GameObject > UI 메뉴에 있는 게임오브젝트들은 모두 위와 같이 Canvas라는 게임오브젝트의 하위에 등록된다. Canvas안에 있는 Button 게임 오브젝트의 Inspector를 보면, 최상단에 있는 콤포넌트가 Transform이 아니고 Rect Transform이다. Transform은 3D 공간상의 좌표값을 가지고 있는 콤포넌트이고, Rect.. 2021. 3. 17.
유니티 강좌 4 - 총알 피하기 4/9. 함수 반복 호출 및 게임오브젝트 파괴 1. 총알 만들기 스크립트 GameController.cs파일안에 총알을 복제하는 스크립트가 담겨 있던 Start( ) 함수 아래에 새로운 함수를 하나 만든다. 총알을 만드는 일을 할 MakeBullet( ) 함수이다. 3편에서 작성했던 Start( ) 안에 들어있는 모든 스크립트를 MakeBullet( )함수 안으로 옴긴다. 결과적으로 이제 Start( ) 안에는 아무런 내용이 없는 상태가 된다. 이제 총알을 생성려면 MakeBullet( )을 호출하여야 하고, 앱이 시작하자마자 총알을 바로 생성하려면 Start( )안에 MakeBullet( )을 작성하여 호출하면 된다. 스크립트 파일을 처음 생성하면 기본으로 들어있던 Start( )나 Update( )처럼 클래스 안에서는 언제든 원하는 함수를 만들어.. 2021. 3. 16.
유니티 강좌 3 - 총알 피하기 3/9. 스프라이트 좌표 이동하기 1. 총알 생성의 위치 변경 총알은 화면 밖에서 생성되어 player의 위치로 발사 되어야 한다. 2편에서 Instantiate를 이용해 총알프리팹을 복제하여 새로운 총알로 생성할 때 생성되는 위치를 Vector3값으로 전달하는데, 이때 Vector3의 값을 변경하여 게임화면 밖 빨간영역에서 생성되도록 조정하려한다. 여기에서는 2D공간에서의 위치를 만들 것이기 때문에 z축은 0으로 고정하고, x와 y축 값만 만들어 내려한다. player가 있는 위치를 기준으로 빨간 영역의 가로 범위가 -13에서 13까지, 세로 범위가 -22에서 22까지이다. 이를 쉽게 확인해보려면, 빈 게임오브젝트를 하나 만들어 빨간영역으로 이동시켜놓고 Transform의 position값을 확인해본다. 그런데 총알이 화면안쪽에서 생성.. 2021. 3. 13.
유니티 강좌 2 - 총알 피하기 2/9. 프리팹 복제 및 생성 이 강좌는 유니티와 프로그래밍 언어를 전혀 모르는 분들을 대상으로 작성되었습니다. 아래 내용은 총알 피하기 1편에서부터 이어집니다. 1. 총알 프리팹(Prefab) Assets/Scene에 총알로 사용할 bullet.png 파일을 추가한다. 이전 편에서 설명한 바와 같이 파일의 경로는 Assets의 하위 어느곳이든 상관이 없으므로 편한대로 폴더구조를 만들어 사용한다. Project창에 등록된 bullet 스프라이트 파일을 Hierarchy에 드래그하여 던져 넣으면 bullet 게임오브젝트가 Hierarchy에 추가된다. 추가된 bullet 게임오브젝트를 클릭하여 선택하면 Inspector에서 Sprite Renderer 콤포넌트의 Sprite항목에 bullet이 등록되어 있는 것을 확인할 수 있다. 또한.. 2021. 3. 8.
유니티 강좌 1 - 총알 피하기 1/9. 준비 유니티로 간단하게 만드는 미니게임 시리즈. 첫 번째 총알 피하기. 이 시리즈는 유니티를 처음 접하고 프로그래밍 언어를 전혀 모르는 분들이 무작정 따라해 보면서 유니티와 C#에 익숙해질 수 있는 내용으로 채워질 예정이며, 총알 피하기 게임 시스템은 아래의 한 장짜리 설명 이미지로 갈음한다. 필자의 경우는 프로그래밍을 전공하지 않았고, 독학으로 학습한 내용을 바탕으로 하기에 이 시리즈에 담긴 내용은 누군가에게는 독이 될 수도 있음을 밝혀둔다. 그러므로, 야매가 아닌 공식적인 학습을 하려면 유니티에서 제공하는 공식적인 교육 과정을 활용하는 것이 좋다. * 유니티 학습 소개 페이지 게임 제작에 앞서 유니티와 에디터를 설치한다. 혹시 관련 설명이 필요하다면 아래 링크의 준비물 글을 참고하세요. 시리즈에 사용된 유.. 2021. 3. 6.
반응형