[개발일지] 10. 점토 판매 기능
·
유니티 프로젝트/점토게임
0. 들어가기 전에다 자란 점토를 판매 버튼 UI 에 드래그&드롭하면 팔리도록 하는 기능을 만들었다.    1. 게임 오브젝트점토 판매 기능을 구현할 때 사용하는 스크립트로는 Clay, ClaySellController, PoolManager 가 있다. 이를 컴포넌트로 갖는 게임 오브젝트들은 다음과 같다.더보기1. PoolManagerpoolManager 게임 오브젝트의 상태는 다음과 같다.  2. Sell ButtonSellButton 게임 오브젝트의 상태는 다음과 같다.  3. ClayClay 게임 오브젝트의 상태는 다음과 같다.    2. 스크립트이번에 새로 만든 스크립트는 ClaySellController 이고, Clay 와 PoolManager 스크립트를 수정했다. 2.1 ClaySellCont..
[개발일지] 9. 풀 매니저 & 점토 데이터 저장&불러오기
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번엔 게임 오브젝트로 생성된 점토를 관리하고, 이를 저장하는 기능을 만들었다. 게임을 종료하고 다시 돌아왔을 때 이전 상태 그대로 반영되어야 하기 때문에 저장&불러오기 기능이 필요하다.    1. 게임 오브젝트풀 매니저 오브젝트와 데이터 매니저 오브젝트를 새로 만들었다. 풀 매니저 매니저는 PoolManager 스크립트를, 데이터 매니저는 DataManager 스크립트를 컴포넌트로 갖는다.    2. 스크립트이번엔 PoolManager, DataManager, Datas, ClayDatas 스크립트를 새로 만들었다. 그리고 기존에 만들었던 Clay 스크립트에 기능을 추가했다. 2.1 PoolManager 스크립트using System;using System.Collections;usi..
[개발일지] 8. 점토 드래그 기능
·
유니티 프로젝트/점토게임
0. 들어가기 전에왼쪽 마우스로 점토를 꾹 누르면 점토 드래그 기능이 수행되도록 만들었다. 나중에 다 자란 점토를 가져다 팔기 위해서 꼭 필요한 기능이다. 주머니에 다 자란 점토를 드래그&드롭 하면 팔리도록 할 것이다.    1. 게임 오브젝트점토를 바닥에 내려놓는 장소가 불가능 구역이라면 드래그 하기 전 위치로 돌아갈 수 있도록 하려고 했다. 이를 위해서는 불가능 구역을 지정해야 하는데 나는 빈 게임 오브젝트를 두 개 만들어서 x, y 좌표를 가지고 불가능 구역을 판단했다. 즉, 왼쪽 상단의 노란색 게임 오브젝트의 x 축보다 작거나 y 축보다 크거나, 오른쪽 상단의 노란색 게임 오브젝트의 x 축보다 크거나 y 축보다 작거나를 기준으로 불가능 구역을 판단했다.    2. 스크립트이번에 새로 만든 스크립트..
[개발일지] 7. 점토 클릭 시 애정 얻기 & 점토 스프라이트 변경
·
유니티 프로젝트/점토게임
0. 들어가기 전에점토를 클릭할 때 레벨에 맞는 애정을 획득할 수 있도록 했다. 점토를 클릭하다 보면 레벨업을 하는데 최고 레벨에 도달하면 점토의 모습이 동물로 변하도록 했다. 레벨업을 할 때마다 점토의 크기가 커지도록 하기 위해서 각 레벨에 맞게 애니메이터를 할당해주었다. 점토가 다 자라서 동물이 되면 스프라이트 이미지 상 움직이는 방향에 맞게 이미지를 좌우반전시켰다.    1. 스크립트이번에 만든 스크립트는 ClayController 이고, ClayMove 스크립트에 변동사항이 생겼다. 1.1 ClayController 스크립트using System.Collections;using System.Collections.Generic;using UnityEngine;public class ClayContr..
[개발일지] 6. 재화, 점토 판매 UI
·
유니티 프로젝트/점토게임
0. 들어가기 전에재화, 점토 판매 UI 를 추가했다. 점토 판매 기능은 아직 UI 만 만들고 기능은 추가하지 않았다. 재화 UI 는 돈이나 애정을 얻었을 때, 그냥 text 로 바로 반영되는 것이 아니라 숫자가 서서히 올라가는 것처럼 보이도록 하는 효과를 주었다.    1. UI 제작일단 재화와 점토 판매 UI 를 제작했다. 1.1 점토 판매 UI다 자란 점토를 점토 판매 UI 로 드래그 한 후 내려 놓으면 팔리도록 하는 기능을 만들려고 한다. 이를 위해서 점토 판매 UI 를 만들어주었다. 주머니가 버튼으로 되어있는데, 나중에 Event Trigger 를 이용해서 마우스가 진입했는지 아닌지의 여부로 판매 여부를 판단할 것이다. 1.2 재화 UI수치를 확인할 수 있도록 하는 UI 를 제작했다. 수치에 변..
[개발일지] 5. 점토 구매, 집 업그레이드, 야생 UI 버튼 & 애니메이션
·
유니티 프로젝트/점토게임
0. 들어가기 전에이번에는 점토 구매, 집 업그레이드, 야생 UI 버튼을 만들고 애니메이션을 적용했다. 버튼을 눌렀을 때 구매창, 업그레이드 창이 뜨도록 하는 기능과 야생 씬으로 전환되는 기능은 다음에 구현할 것이다. 이번엔 그냥 버튼만 만들었다.    1. UI 버튼 제작본격적으로 캔버스에 이미지와 버튼을 추가한다. 1.1 UI 버튼 생성 왼쪽 하단을 보면 버튼 3개가 있는 모습을 볼 수 있다. 먼저 캔버스에 판넬 이미지를 하나 게임 오브젝트로 만들어 준 후, 그 판넬의 자식 오브젝트로 3개의 버튼을 만들어주었다. 세 개의 버튼은 왼쪽부터 차례로 점토 구매 버튼, 집 업그레이드 버튼, 야생 버튼이다. 1.2 UI 버튼 스프라이트 Swap Button 의 Transition 을 Sprite Swap 으로..
[개발 일지] 4. 해상도 설정
·
유니티 프로젝트/점토게임
0. 들어가기 전에사람들마다 가지고 있는 기기의 해상도가 다르기 때문에 이에 대응할 방법이 필요하다. 솔직히 나는 UI 랑 해상도 공부할 때가 제일 하기 싫은 것같다.. 어렵고 알아야 하는 것도 많고 귀찮고 재미없다.. 하지만 해야지..     1. 해상도 설정일단 게임 오브젝트로 캔버스를 하나 만든다. 이제 이 캔버스에 UI 를 추가하면 된다. 그 전에 먼저 해상도 설정을 해야 한다. 1.1 Canvas 설정일단 Canvas 게임 오브젝트의 Canvas 컴포넌트 속 Render Mode 를 Screen Space - Camera 로 설정해준다. 이렇게 하면 캔버스 크기가 Camera 사이즈에 맞춰서 조정된다. 그 다음 Canvas Scaler 의 UI Scale Mode 를 Scale With Scre..
[개발 일지] 3. 점토 애니메이션 기능
·
유니티 프로젝트/점토게임
0. 들어가기 전에점토가 게임 화면을 돌아다니는 모습에 생동감을 주기 위해 애니메이션 기능을 추가했다. 젤리 키우기 에셋 목록에서 직접 만든 애니메이션이 있길래 그걸 토대로 각 레벨마다 애니메이션과 애니메이터를 만들었다. 일단 점토가 돌아다니는 기능만 구현되어 있기에 만들어놓은 애니메이션 중 Walk 애니메이션만 사용했다. Touch 애니메이션은 마우스로 점토를 클릭했을 때 실행되도록 할 것이다.더보기구현한 기능- 점토 애니메이션 기능    1. 점토 애니메이션 기능우선 점토에 애니메이션을 적용하기 위해서 Walk, Idle, Touch 애니메이션을 만들어주었다. 1.1 애니메이션 & 애니메이터 제작점토의 레벨을 1~5 레벨로 설정했다. 레벨이 올라갈수록 점토의 크기가 커지는데 이를 애니메이션에도 적용을..
[공부 내용 정리] 5장 게임 오브젝트 제어하기
·
유니티 공부/레트로의 유니티 게임 프로그래밍 에센스
5. 들어가기 전에게임 월드 속 사물을 오브젝트라고 한다. 온전한 하나의 사물이라고 인식할 수 있다면 어떠한 것도 오브젝트가 될 수 있다. ex) 캐릭터 오브젝트, 탄알 오브젝트, 바위 오브젝트 게임이 아니더라도 대부분의 프로그램에서는 하나의 독립적인 사물을  오브젝트라는 단위로 표현한다. 그러한 오브젝트들이 상호작용하여 프로그램을 이룬다. 이 장에서 배울 객체지향은 독립적이며 스스로동작하는 여러 객체(오브젝트)가 모여 거대한 프로그램이 완성되는 구조를 만드는 방법이다. 이것이 유니티 C# 스크립트의 클래스가 동작하는 방식이다.더보기이 장에서 다루는 내용- 클래스와 오브젝트의 개념을 이해한다.- C# 클래스로 원하는 사물을 정의한다.- 오브젝트를 생성하는 방법을 배운다.- 참조 변수를 사용하여 유니티의 ..
[개발일지] 2. 점토가 돌아다니도록 하기
·
유니티 프로젝트/점토게임
0. 들어가기 전에점토가 게임 화면을 알아서 돌아다닐 수 있도록 하는 기능을 구현했다.  이번에는 미루고 미루던 코루틴을 드디어 공부하고 실제로 코드에 적용해보는 시간을 가졌다. 직접 사용해보기 전에는 막연한 두려움이 있어서 공부하기가 싫었는데 막상 해보니까 엄청 어렵지는 않았다. 확실히 코루틴을 이용하니까 내가 원했던 기능을 쉽게 구현할 수 있었다. 내가 원했던 기능은 점토가 벽에 부딪혔을 때 방향을 바꿔서 돌아다니는 로직을 잠시 멈추고 게임 화면의 중앙으로 돌아오도록 하는 것이었다. 코루틴을 배우기 전에는 이걸 어떻게 구현해야할지 몰라서 그냥 넘어갔었다. 이번에 구현하게 되어서 정말 기분이 좋다. 사실 구현이랄 것도 크게 없긴 하지만 그래도 좋다 ^~^더보기구현한 기능 목록- 점토 돌아다니기    1..