[개발일지] 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 중 하나는 책 판넬이 아닌 부분을 클릭하면 판넬이 꺼지도록, 하나는 책 판넬의 닫기..
[개발일지] 20. 2D Light 적용
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 게임에 2D Light 를 적용해보았다. 점토를 드래그 시작 했을 때 UI 를 끄고, 2D Light 를 이용해서 배경을 어둡게 해줬다. 그리고 점토에 자식 오브젝트로 빛을 넣어놓아서 들어올렸을 때 빛이 활성화되도록 했다.    1. 애셋2D Light 를 적용하기 위해 URP Asset 을 만들었다. 그리고 점토마다 자신의 빛을 가질 수 있도록 점토 프리팹도 수정했다. 1.1 URP Asset (with 2D Renderer)URP Asset(with 2D Renderer) 를 만들었다.  Project Setting 의 Graphics 창에서 Scriptable Render Pipeline Settings 에 위에 만든 것을 넣어주었다.  1.2 점토 프리팹점토 프리팹의 상태..
[개발일지] 19. 블라인더 장난감 소환시 배경 변경
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 점토 집 레벨이 4가 되면 나타나는 블라인더에 맞게 배경을 적절히 변경했다. 이전에는 블라인더가 생겨도 바닥에 빛이 반사되는 모습이 변하지 않아서 마음에 들지 않았다.    1. 게임 오브젝트새로 추가된 게임 오브젝트는 windowLight 이다. 이는 바닥에 빛이 반사되는 모습을 블라인드에 맞게 그려놓은 게임 오브젝트이다.  Plant Panel 게임 오브젝트의 Upgrade Panel 스크립트 속 blindBackground 와 lightBackground 변수에 게임 오브젝트인 shin 과 windowLight 를 할당했다.    2. 스크립트이번에 새로 만든 스크립트는 없고 UpgradePanel 을 수정했다. 2.1 UpgradePanel 스크립트using System..
[개발일지] 18. 레벨에 맞게 장난감 소환 & 데이터 적용
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 미리 만들어놓았던 장난감들을 점토 집을 업그레이드 할 때 소환되도록 했다. 그리고 데이터를 저장하고 다시 시작했을 때 저장해놓은 데이터를 반영해서 장난감들이 그대로 소환되도록 했다.    1. 게임 오브젝트Plant Panel 게임 오브젝트의 Upgrade Panel 컴포넌트 속 Toys 배열에 미리 만들어놓은 장난감 버튼 게임 오브젝트를 넣어놓았다. 점토의 집을 업그레이드 할 때마다 각 단계에 맞는 장난감 게임 오브젝트가 나타나도록 하기 위함이다.    2. 스크립트이번에 새로 만든 스크립트는 따로 없고 기존의 스크립트를 수정했다. 수정한 스크립트는 GameManager, UpgradePanel 이다. 2.1  GameManager 스크립트using System.Collecti..
[개발일지] 17. 가구 추가 & 애니메이션 적용
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 가구를 추가하고 점토를 가구에 드래그&드롭하면 애니메이션이 실행되도록 했다.  가구는 그냥 게임 오브젝트 말고 캔버스 상에 Button 으로 추가했다. 마우스가 해당 게임 오브젝트로 진입했는지 여부를 파악하기 쉽게 하기 위함이다..    1. 게임 오브젝트가구 UI 만 따로 관리하기 위해 새로운 캔버스 두 개를 만들었다. ToyCanvas1 에 있는 가구들은 점토보다 뒤에, ToyCanvas2 에 있는 가구는 점토보다 앞에 있도록 하기 위해 두개로 나눈 것이다.    2. 스크립트이번에 새로 만든 스크립트는 ToyController 이고, 수정한 스크립트는 GameManager, Clay, ClayMove 이다. 2.1 ToyController 스크립트using System.Co..
[개발일지] 16. ClayMove 스크립트 수정
·
유니티 프로젝트/점토게임
0. 들어가기 전에이제 보니까 비활성화 된 점토가 다시 활성화 될 때 ClayMove 스크립트가 제대로 동작하지 않는 모습을 확인했다. ClayMove 스크립트를 수정해서 정상적으로 작동하도록 했다.    1. 스크립트ClayMove 스크립트를 수정했다. 1.1 ClayMove 스크립트using JetBrains.Annotations;using System.Collections;using System.Collections.Generic;using UnityEngine;public enum MoveDirection{ Minus = -1, Plus = 1, Idle = 0 }public class ClayMove : MonoBehaviour{ [Header("ClayMovement")] pu..