[개발일지] 12. 농작물 자라는 로직 변경
·
유니티 프로젝트/케이크게임
[구현한 기능]시간이 흐름에 따라 자라도록 했던 기능을, 날이 지나면 자라도록 변경했다. [변경된 클래스]FarmingManagerSeedItemSO  FarmingManagerusing Inventory.Model;using JetBrains.Annotations;using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Net;using Unity.VisualScripting;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.SceneManagement;using UnityEngine.Tilemaps;using U..
[개발일지] 11. 중간 정리
·
유니티 프로젝트/케이크게임
기능만 만들고 정리를 안 한지 오래 돼서 이번 기회에 중간 정리를 하려고 한다. 주요 기능 설명은 현재 프로젝트 클래스 종류 설명 밑에 있다. [구현한 기능]인벤토리(아이템 누적, 아이템 설명, 아이템 이동, 아이템 판매, 아이템 종류 별 인벤토리 창, 아이템 칸 부족시 새로 칸 생성)씬 이동 시 인벤토리 매니저에 참조 변수 값 찾아서 넣어주는 기능농장 데이터 저장 기능 [현재 프로젝트 클래스 종류]1. 농장FarmingManager: 농사의 전반적인 시스템을 관리하는 클래스Seed: 씨앗 클래스Fruit: 과일 클래스(삭제)SeedContainer: 씨앗 프리팹을 배열에 담아놓고, 씨앗을 생성할 때마다(땅에 심을 때) 풀에 넣어놓는 클래스FruitContainer: 과일의 개수를 관리하는 클래스Seed..
[개발일지] 10. scriptableobject 를 상속받는 클래스의 장점
·
유니티 프로젝트/케이크게임
[공부 내용]ScriptableObject를 상속받는 클래스가 MonoBehaviour를 상속받는 클래스보다 좋은 점은 여러 가지가 있습니다. 이 두 클래스는 Unity에서 각각의 역할이 다르며, 사용 용도에 따라 그 장점이 두드러집니다.메모리 효율성:ScriptableObject는 메모리 효율성이 뛰어납니다. MonoBehaviour는 씬 내의 각 게임 오브젝트에 부착되어야 하므로, 게임 오브젝트가 많아질수록 메모리 사용량이 늘어납니다. 반면, ScriptableObject는 에셋으로 저장되어 필요할 때 참조할 수 있으므로 메모리를 절약할 수 있습니다.데이터 관리:ScriptableObject는 데이터 중심의 설계에 유리합니다. 예를 들어, 게임 내에서 사용되는 여러 설정값, 아이템 데이터, 스킬 데이..
[개발일지] 9. 농장 크기 업그레이드
·
유니티 프로젝트/케이크게임
[구현한 기능]농장 크기 업그레이드 기능 [현재 프로젝트 클래스 종류] - 클래스 종류 변경 사항 없음FarmingManager: 농사의 전반적인 시스템을 관리하는 클래스Seed: 씨앗 클래스Fruit: 과일 클래스SeedContainer: 씨앗 프리팹을 배열에 담아놓고, 씨앗을 생성할 때마다(땅에 심을 때) 풀에 넣어놓는 클래스FruitContainer: 과일 프리팹을 배열에 담아놓고, 과일을 생성할 때마다 풀에 넣어놓는 클래스SeedUIManager (이름 변경): 씨앗 구매창, 선택창 UI 를 관리하는 클래스BuySeedSlotManager (이름 변경): 씨앗 구매창의 슬롯을 관리하는 클래스PlantSeedSlotManager: 씨앗 선택창의 슬롯을 관리하는 클래스FarmingData(MonoBe..
[개발일지] 8. 씨앗 선택창 심기 버튼 연동 & 씨앗 구매하기 로직 추가
·
유니티 프로젝트/케이크게임
[구현한 기능]씨앗 선택창 만들기심기 버튼이랑 씨앗 선택창이랑 연동하기씨앗 선택창에서 버튼 누르면 씨앗 심어지도록 하기씨앗 구매하기 버튼 게임 매니저의 money 변수 이용해서 로직 추가하기(구매한 씨앗은 인덱스 번호에 맞는 배열의 요소 개수 증가하도록 -> 씨앗 구매하자마자 인스턴스 생성되는 거 아님! 씨앗을 심어야 비로소 인스턴스 생성)다 자란 과일 수확하면 인덱스 번호에 맞는 배열의 요소 개수 증가하도록 하기 [현재 프로젝트 클래스 종류]FarmingManager: 농사의 전반적인 시스템을 관리하는 클래스Seed: 씨앗 클래스Fruit: 과일 클래스SeedContainer: 씨앗 프리팹을 배열에 담아놓고, 씨앗을 생성할 때마다(땅에 심을 때) 풀에 넣어놓는 클래스FruitContainer: 과일 프..
[개발일지] 7. 현재까지 구현한 기능 정리
·
유니티 프로젝트/케이크게임
전에 공부용으로 만들었던 코드들을 본격적으로 다시 만들었다. 그래서 현재까지 개발한 사항을 여기에 새로 작성하려고 한다. 전에 코드랑 달라진 부분이 많아서 이제 이 코드를 기준으로 앞으로의 게시물을 작성할 것이다. [주요 기능 설명] 파트는 [현재 프로젝트 클래스 종류] 파트 밑부분에 있다. [구현한 기능]농사 가능 구역만 농사 가능하도록 하는 기능밭 갈기, 씨앗 심기, 과일 수확하기각 밭(타일) 마다 밭 갈기, 씨앗 심기, 과일 수확하기 버튼 동적 생성버튼 누를 때 뒤에 있는 타일을 안 눌리도록 하는 기능씨앗이 심어진 밭(타일) 클릭하면 다 자라기까지 남은 시간 뜨도록 하는 기능씨앗 구매창(이제 게임 매니저랑 연결해서 로직 더 작성해야함.) [현재 프로젝트 클래스 종류]FarmingManager: 농사..
[개발일지] 6. 주석 깨짐 현상 해결하기
·
유니티 프로젝트/케이크게임
[문제상황]내가 작성한 주석이 다른 팀원들한테 깨져서 보이는 상황.. [해결방법] 일단 아래 내용에서 하는 것처럼 Editorconfig 를 생성했다. https://drehzr.tistory.com/2045 문제해결)Visual Studio (EditorConfig) 생성 메뉴가 없는 경우Visual Studio (EditorConfig) 생성 메뉴가 없는 경우 추가하려고해도 EditorConfig가 없는 경우가 있다. 그런 경우에 editorconfig 파일을 생성하는 방법을 간략하게 포스팅 한다. (VisualStudio 2022, Window 환경) drehzr.tistory.com  아래 노션을 보면서 따라했다. Editorconfig 파일 안에 editor configuration 변경으로, ..
[개발일지] 5. 버튼 눌렀을 때 뒤에 있는 타일(게임 오브젝트)은 안 눌리도록 하는 방법
·
유니티 프로젝트/케이크게임
[원하는 기능]버튼을 눌렀을때 뒤에 있는 타일 안 눌리도록 하는 기능  [공부한 내용]  유니티에서 UI 요소가 클릭되었을 때, 뒤에 있는 타일이 클릭되지 않도록 하려면 GraphicRaycaster와 EventSystem이 올바르게 설정되어 있는지 확인해야 한다. Canvas 설정 확인Canvas 오브젝트가 있는지 확인한다. Canvas 오브젝트는 UI 요소들이 포함되어야 한다.Canvas 오브젝트에 GraphicRaycaster 컴포넌트가 추가되어 있는지 확인한다(기본적으로 포함되어 있다).Canvas 의 Render Mode 가 Screen Space - Overlay 또는 Screen Space - Camera 로 설정되어 있는지 확인한다. EventSystem 설정확인EventSystem 오브젝..
[개발일지] 4. 씨앗 심기 & 수확하기 (+ 수확하기 버튼)
·
유니티 프로젝트/케이크게임
[원하는 기능]갈린 밭에 씨앗 심기다 자란 과일 수확하기수확하기 버튼으로 수확하기 [관련클래스]Fruit: 과일 클래스. 멤버 변수로 과일 이름, 과일 가격, 게임 상에서 활성화 기준을 결정하는 flag 변수(isEnabled) Seed: 씨앗 클래스. 멤버 변수로 씨앗 이름, 성장시간, 시작시간(씨앗이 밭에 심어진 후부터 증가), 씨앗 가격, 게임 상에서 활성화 기준을 결정하는 flag 변수(isEnabled)FruitContainer: 과일 게임 오브젝트를 생성하고 저장해놓는 클래스SeedContainer: 씨앗 게임오브젝트를 생성하고 저장해놓는 클래스 FarmController: 전반적인 농장 기능을 수행하도록 하는 클래스   [코드]Fruit과일은 다 자란 작물의 수확하기 버튼을 눌러서 얻을 수 ..
[개발일지] 3. 경계 내부 구간만 타일 변경
·
유니티 프로젝트/케이크게임
[원하는 기능]농사 가능 구역만 타일을 바꿀 수 있도록 하는 기능 [관련함수]ScreenToWorldPoint(Vector): 벡터를 받아서 게임상 좌표로 변환하는 함수WorldToCell(Vector): 벡터를 받아서 타일맵의 셀 좌표로 변환하는 함수HasTile(Vector): 벡터를 받아서 그 위치에 타일이 존재하는지 확인하는 함수SetTile(Vector, Tile): 벡터와 타일을 받아서, 그 위치에 타일을 생성하는 함수  [코드]using System.Collections;using System.Collections.Generic;using Unity.VisualScripting;using UnityEditor.U2D.Aseprite;using UnityEngine;using UnityEngi..