[개발일지] 30. 야생 난이도에 따른 맵 생성 & 배경 설정
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 야생 난이도에 따라 생성되는 맵이 달라지도록 만들었다. 맵을 easy, normal, hard 버전으로 만든다음 야생 난이도에 맞는 맵만 생성하도록 했다. normal 과 hard 버전 맵은 코드가 잘 작동하는지 확인하기 이해 임시로 만들어서 1개씩밖에 없다. 그리고 야생 난이도에 맞게 배경을 활성화하도록 했다. 일단 하이어라키 창 속 세 개의 배경 게임 오브젝트 활성화를 모두 꺼놓아야 한다.    1. 게임 오브젝트하이어라키 창에 새로 생성한 게임 오브젝트는 없고 기존의 MapSpawner 게임 오브젝트를 수정했다. 그리고 세 개의 배경 게임 오브젝트 활성화를 꺼놓았다. 1.1 MapSpawner더보기1. 인스펙터 창맵스포너의 인스펙터 모습은 다음과 같다.  EasyMapPre..
[개발일지] 29. 맵 프리팹 수정 & 스크립트 수정
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 맵 프리팹과 스크립트를 수정했다. 기존 맵 프리팹은 그냥 맵에 압정의 위치가 한 곳에만 있고 변경되지 않았다. 이번에는 맵에 압정 3개를 놓은 후, 랜덤한 확률로 압정을 활성화 여부를 결정해서 압정이 다양한 곳에 생성되는 것처럼 보이도록 했다. 압정이 활성화 될 확률은 쉬움, 보통, 어려움 단계에 맞게 설정해야 했는데 이를 위해 Random.Range 를 이용했다.    1. 맵 프리팹일단 쉬움 단계의 맵의 종류로는 4개를 만들어놨는데 더 추가할 예정이다. 일단 맵은 압정이 있는 경우, 몬스터가 있는 경우, 아무것도 없는 경우로 나뉜다. 더보기1. 인스펙터 창모든 맵의 인스펙터 창 컴포넌트 상태는 다음과 같다. 맵 마다 다른 부분이 있다면 Map Controller 스크립트이다..
[개발일지] 28. 맵 이동 & 생성
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 프리팹으로 만든 맵을 일정 시간마다 게임에 생성하도록 했다. 그리고 기존에 만들어놨던 ScrollingBackground 스크립트를 부착해서 맵이 이동하도록 했다.    1. 프리팹일단 맵 프리팹을 4개 만들어놨다. 지금은 원하는 기능을 구현하기 위해 맵을 대충 만들었는데 다음에 맵 종류도 더 늘릴 것이다. 일단 Grid 에 4개의 프리팹을 놓으면 아래 사진처럼 보인다. 맵에 장애물과, 몬스터가 있는 경우가 있는데 이는 맵의 자식으로 넣어놓은 것이다. 더보기1. 인스펙터 창맵의 인스펙터 창의 상태는 다음 사진과 같다. Scrolling Background 스크립트를 부착해서 맵이 이동할 수 있도록 했다.    2. 게임 오브젝트이번에 새로 만든 게임 오브젝트는 MapSpawner..
[개발일지] 27. 플레이어 & 장애물 상호작용
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 플레이어와 장애물이 상호작용 하는 기능을 구현했다.    1. 프리팹이번에 새로 만든 프리팹은 장애물(뾰족한 삼각형) 이다. 이렇게 만든 프리팹은 나중에 맵 프리팹을 만들 때 이용할 것이다. 1.1 Spike더보기1. 인스펙터 창게임 오브젝트의 Tag 와 Layer 를 Attack 으로 설정해줬다. 나중에 스크립트로 해당 게임 오브젝트가 무엇인지 판단할 때 이용하기 위함이다. 1.2 Monster더보기1. 인스펙터 창현재 몬스터 게임 오브젝트의 인스펙터 창은 다음과 같다. 새로 추가된 컴포넌트는 Audio Source 인데 몬스터가 플레이어한테 밟혀 죽는 상황에서 소리를 내게 할 것이기 때문이다.    2. 스크립트이번에 새로 만든 스크립트는 없고 Monster 와 Player ..
[개발일지] 26. 몬스터 기초 제작
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 몬스터가 알아서 맵을 돌아다니도록 했다.     1. 게임 오브젝트일단 하이어라키 창에 몬스터 게임 오브젝트를 만들었다. 다음에 이 몬스터를 프리팹으로 만들어서 사용할 것이다. 1.1 Monster몬스터 게임 오브젝트의 정보는 다음과 같다.더보기1. Monster 스크립트직접 만든 스크립트이다. 몬스터의 움직임을 관리하기 위해 만들었다. 2. Rigidbody 2D몬스터 게임 오브젝트가 물리 작용을 받도록 하기 위해 부착한 컴포넌트이다. 3. Circle Collider 2D몬스터 게임 오브젝트가 다른 물체와 충돌한 것을 감지하기 위해 부착한 컴포넌트이다. 4. Animator몬스터의 애니메이션을 관리하기 위해 부착한 컴포넌트이다.    2. 애니메이션&애니메이터이번에 새로 만든..
[개발일지] 25. 야생 씬 기초 제작
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 야생 씬의 아주 기초적인 부분을 제작했다. 우선 게임의 배경을 쉬움, 보통, 어려움 난이도에 따라 바꿔주기 위해 배경 게임 오브젝트를 3개 만들었다. 그리고 야생 씬이 시작됐을 때 맨 처음 발판이 될 부분을 tilemap 으로 찍어놨다. 그리고 플레이어의 기본적인 기능을 담은 스크립트를 제작해서 부착했다.    1. 게임 오브젝트현재 야생 씬의 게임 오브젝트는 다음 사진과 같다. 1.1 Background(easy, normal, hard)야생 난이도에 따라 배경을 다른 그림으로 설정하기 위해서 배경 게임 오브젝트를 3개 만들었다. 게임 화면 속 보이는 배경의 모습은 다음 사진과 같다. 어려움 단계는 현재 플랫폼 스프라이트와 이질감이 있어서 나중에 2D Light 를 추가하여 ..
[개발일지] 24. 월드 판넬 제작
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 월드 판넬을 제작했다. 본격적으로 야생 콘텐츠를 만들기 전에 야생 씬으로 넘어갈 수 있도록 하는 판넬을 만들어야 하기 때문이다.    1. 게임 오브젝트이번에 새로 만든 게임 오브젝트는 World Panel 이다. 1.1 World Panel기존 Canvas1 게임 오브젝트에 자식 오브젝트로 World Panel 을 만들었다.더보기1. 하이어라키 창  2. 게임 화면 속 모습  3. 인스펙터 창 모습World Panel 게임 오브젝트는 컴포넌트로 Animator 와 World Panel 을 갖는다. 1.2 World Button기존 만들어 놓았던 게임 오브젝트이다. 수정한 내역은 다음과 같다.더보기1. 하이어라키 창 모습  2. 인스펙터 창 모습기존에 부착해놨던 Button M..
[개발일지] 23. 도감 애니메이션 적용
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 도감에 애니메이션 기능을 적용했다. 페이지를 넘길 때 동적인 효과를 주고 싶었기 때문이다.    1. 애니메이션&애니메이터도감 애니메이션을 위해 애니메이션과 애니메이터를 만들었다. 1.1 BookController 애니메이터도감을 위한 애니메이터이다.더보기1. 상태애니메이터 상태는 다음과 같다. 처음에는 Idle 상태에 있다가 도감 페이지 넘기기 버튼을 누르면 애니메이션이 수행되도록 했다. 파라미터로 Trigger 타입을 2개 만들어서 사용했다. Any State 에서 왼쪽 버튼이 눌리면 isLeftClicked 를 set 해서 도감을 넘기는 애니메이션이 적용되도록 했다. 반대도 마찬가지이다. 1.2 BookLeftAnim, BookRightAnim 애니메이션도감 애니메이션을 위..
[개발일지] 22. 데이터 로드 & 반영 로직 수정
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 데이터를 로그하고 반영하는 로직을 수정했다. DataManager 가 준비될 때까지 기다렸다가 후에 가져온 데이터를 반영하도록 하기 위함이다.    1. 스크립트이번에 새로 만든 스크립트는 따로 없고 DataManager, GameManager, PoolManager 를 수정했다. 1.1 DataManager 스크립트using System;using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI;public class DataManager : MonoBehaviour{ [Header("Data Manager")] public..
[개발일지] 21. 점토 도감
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 점토 도감을 만들었다.    1. 게임 오브젝트이번에 새로 만든 게임 오브젝트는 BookCanvas 와 Book Button 이다. BookCanvas 는 자식 오브젝트로 Close Button, Book 을 갖는다. 1.1 Book Button기존에 만들어두었던 Canvas1 에 자식 오브젝트로 만들었다. 북 버튼을 누르면 북 판넬이 활성화된다.더보기1. 게임 화면 속 모습  2. 인스펙터 창 모습Book Button 의 OnClick() 에 연결된 목록은 다음 사진과 같다.  북 버튼을 누르면 BookPanel 과 두 개의 Close Button 이 활성화되도록 했다. Close Button 중 하나는 책 판넬이 아닌 부분을 클릭하면 판넬이 꺼지도록, 하나는 책 판넬의 닫기..