본문 바로가기

전체 글

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.. 더보기
Block Puzzle 만들기 2주일 만에 게임을 하나씩 만들어내는 프로젝트를 진행중이다. 일단은 기존의 유명한 퍼즐 게임들을 하나씩 만들어볼 예정. 이번에 만들어볼 게임은 Block Puzzle이다. 사실 거의 1주일 정도 전부터 작업을 시작해서 지금은 블럭을 드래그해서 이동시킬수 있는 단계까지 진행했다. 현재는 8일 째다... 여기까지 작업하는 것도 참으로 고생스러운 일이다. 퇴근하고 졸린 눈을 부릅뜨고 한땀한땀 코드를 집어넣어 만든... 그러니까 옛날 이야기에서 어머니가 호롱불 앞에 켜놓고 한땀한땀 삯바느질하는 것 같은 느낌으로다가 작업을 했단 말이다. 이제 모든 피스를 사용하면 하단에 피스 조각들이 리필되는 것을 만들 차례다. 그래도 일단 제대로 작동하는 모습을 보는 것은 참으로 뿌듯... 뭔가 잘못됐다..? 알았다. 데이터는.. 더보기
Unity3D - Scene window 화면 조작 법 화면을 조작하는 방법에 대해서 알아봅시다. 블랜더나 3D Max 에서 볼 수 있는 작업 공간의 개념입니다. 먼저 화면 조작 방법을 알아봅시다. 화면 이동 휠 드래그 , Ctrl + Alt + MLB 드래그 :화면을 위/아래/좌/우로 이동시켜 볼 수 있습니다. 화면 회전 MRB 드래그 , Alt + MLB 드래그 : 카메라를 회전시키며 여러 각도로 볼 수 있습니다. 화면 확대/축소 휠굴림, Ctrl + Alt + MRB 드래그 : 화면을 확대 축소해서 볼수 있습니다. 자유 시점 보기 W|A|S|D + MRB 드래그 : FPS를 하는 것처름 화면을 자유롭게 이동하면서 볼수 있는 방법입니다. 선택한 물체에 포커스 맞추기 F : 선택되어있는 물체를 향해 카메라를 이동시킵니다. 선택한 물체를 화면에 맞추기 Shi.. 더보기