Game Make 썸네일형 리스트형 Block Puzzle 만들기 (9) 이제 인앱을 등록해 보자. 1. 유니티 에디터를 설정한다. Project Setting > Services Gerneral Settings로 이동한다. 13세 미만 게임인지를 확인하는 부분이 있다. 난 No로 선택했다. In-App Purchasing Settings 를 On 시킨다. Purchasing Package 버전을 확인해보고 해야한다면 Install Latest Version을 눌러서 설치한다. 2. 이제 구글 개발자 콘솔로 이동한다. 수익창출 > 수익창출 설정 을 열어 BASE64 키를 복사한다. 3. 다시 Unity에디터를 연다. Services > In-App Purchasing > Receipt Validation Obfuscator를 연다. 2번 항목에 복사한 키를 붙여넣는다. 그리고.. 더보기 Block Puzzle 만들기 (8) 지난 시간에는 구글 플레이 SDK를 설치했다. 이제 SDK를 이용해 구글 플레이에 접속하고 리더보드를 갱신하는 코드를 만들어 보자. 1. 먼저 리더보드를 생성해야 한다. 개발자 콘솔에 들어가서 Doku Block Puzzle 앱을 연다. 성장 > Play 게임즈 서비스 > 리더보드 로 이동한다. 리더보드 생성을 누른다. 리더보드의 이름과 아이콘을 등록한다. 임시보관함에 저장을 누른다. 이전 단계로 돌아가면 리더보드가 등록된 것을 볼 수 있다. 2. 업적도 등록해보자 성장 > Play 게임즈 서비스 > 업적으로 이동하여, 업적만들기를 누른다. 필요한 내용을 입력하고, 임시보관함에 저장을 눌러준다. 이전 단계로 돌아가면 업적이 등록된것을 확인할 수 있다. 이런 방식으로 필요한 업적을 여러 개 만들어 줄수 있.. 더보기 Block Puzzle 만들기 (7) 이제 구글 플레이 서비스와 연동하여 리더보드를 구현해 보겠다. (나도 할 때마다 헤깔려서 절차를 기록해 놓는 목적도 있다.) 먼저 안드로이드로 출시하기 위한 사전 작업을 해야 한다. 일단 플랫폼을 안드로이드Android로 전환해야다. Unity3D가 멀티 플랫폼을 지원하기 때문에 별다른 플랫폼 종속 기능이 있는게 아니라면, 버튼 한번으로 해결되는 일이다. 빌드 셋팅에서 Android를 선택하고 Switch Platform 버튼을 누르면 된다. 문제는 한번 Switch를 실행하면 엄청 오래 걸린다는 것 정도? 그래도 이번 프로젝트는 아무 문제없이 전환이 되었다. 이제 Player Setting을 손보자. Edit > Project Setting > Player 순으로 들어가면, 앱에 관련된 여러 설정들을 .. 더보기 Block Puzzle 만들기 (6) 이번에 넣어볼 것은 콤보 시스템이다. 연속으로 클리어에 성공하면 콤보 카운트가 쌓이면서 추가 점수를 얻는 시스템 되시겠다. 일단 디자인부터 하자. 정말 간단한 도형들로 콤보 카운트를 표시할 수 있도록 디자인했다. 자! 이런 식으로 콤보를 표시하면 되겠지? 그리고 에니메이션을 추가하면 좀 더 예쁜 그림이 나올것이다. 이렇게 해보자 Fix : UI가 감춰진 상태 (기본 상태) Open : UI가 등장하는 에니메이션 Repeat : UI가 튕기는 에니메이션 오! 괜찮아 보인다. 그리고 드디어! 게임의 전반적인 틀이 모두 완성되었다. 아자! 아자! 그럼 이제 끝인가? 그건 또 아니다. 당연히 아직 할 일이 산더미처럼 남아있다. 리스트를 정리해 보자 사운드 추가 옵션 기능 추가 안드로이드 프로젝트로 전환 인앱기능.. 더보기 Block Puzzle 만들기 (5) 지난 번에 이어서 외관을 변경할 생각이다. 하얀색 뿐이었던 배경색을 변경해보자. 배경 스프라이트를 선택하고 색깔을... 뭐하나 스므스 하게 넘어가는게 없냐? 지난 번에 SpriteRenderer에 그림자를 넣어 보겠다고 쉐이더를 끼워넣을 것을 기억할 것이다. 아마 그때 만들어 넣은 쉐이더에는 SpriteRender의 Color를 사용하는 기능이 없는 것 같다. 음... 일단 Unity Forum을 찾아 보자. 역시 나랑 같은 문제를 질문한 사람이 있었다.(그럼 그렇지..) 해답으로 제시된 코드는 이렇다. ... OUT.texcoord = IN.texcoord; OUT.color = IN.color * _Color; ... Input에서 Color를 가져오라는 것 같다. (사실 Shader를 공부한 적이 .. 더보기 Block Puzzle 만들기 (4) 기능들을 거의 다 만들었으니, 이번에는 연출 쪽을 보강해 보기로 하자. 이 게임은 기본적으로 SpriteRender를 사용하는 2D 게임이지만 약간 3D 같은 느낌을 가미하면 어떨까? Directional Light의 그림자를 이용해 보는게 어떨까? Shader "Sprites/Beat/Diffuse-Shadow" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.5 } SubShader { Tags { "Queue"="AlphaTest" "IgnoreProjector".. 더보기 Block Puzzle 만들기 (3) 기본적인 기능을 어제부로 완성했다. 이제 부가적인 기능들을 채워 넣어야 한다. 가장 처음에 만들 것은 조각을 드래그할때, 놓을 공간이 있는지 없는지 쉽게 알수 있도록 하는 것이다. 조각을 채워넣지 못하는 상태라면 붉은색 음영으로 쉽게 알수 있도록 하자. 된다... 되긴 됐는데... 어째 잘 안보이는데? 조각 UI에 가려서 조금 갑갑한 느낌이 든다. 이럴 때는 생각할 필요없이 보강 작업에 들어가는 것이 좋다. 새로 작업해 보자. 이번에는 조각 UI 자체의 색을 바꾸는 방법으로 진행하겠다. 오케이! 아까에 비해서 훨씬 잘 보이게 되었다. 이대로 진행해도 될 것 같다. 다음에 넣을 기능은 제거가능한 블록들을 미리 보여주는 기능이다. 이번에도 쭉 진행해 본다. 중간에 좀 시간이 걸렸지만, 어떻게든 완료했다. 원.. 더보기 Block Puzzle 만들기 (2) 어제에 이어서 계속 작업한다. 오늘은 게임의 백미라고 할수 있는 '라인 제거' 시스템을 만든다. 먼저 작업해야 할것은 9x9 데이터를 검토하여 어떤 블럭을 제거해야 하는지 검사하는 함수를 만드는 것... 일단 로직 자체가 간단하기 때문에 쉽게 만들 수 있을 것 같다. /// _Table에서 없어져야할 블럭을 찾아서 tempState에 표시한다. return clearBlockCount public int FindAndMakeClearBlock() { for (int i = 0; i < _tempState.Length; i++) _tempState[i] = 0; /// 가로 방향으로 제거블럭을 탐색한다. for (int i = 0; i < Constants.TableSize; i++) { int count.. 더보기 이전 1 2 다음