unity (6) 썸네일형 리스트형 공장 게임 UI 및 마무리 게임의 로직을 완성하고, UI로 마무리를 지을 단계.이번 프로젝트는 스크립터블 오브젝트 사용을 많이 했음.별로 관련 없는 오브젝트와 연결시키기보다 그냥 따로따로 데이터를 가지는 게 종속성 문제나 코드 실행 순서에 따른 오류 발생도 훨신 적을 거 같았기 때문 예시로. 맵 정보나 아이템 정보를 스크립터블로 저장해 보았다.하지만 스크립터블이 시작할 때마다 초기화한다는 걸 몰랐었다.프로젝트를 급히 마감해야 해서 별 상관은 없었지만, 의도는 수정한 게 저장되는 것이었음,아이템의 정보나 건물 설치 시 필요한 정보들은 쓰기 좋았다. 그리고 이 정보들은 Addressable로 약간 Dict처럼 편하게 스크립터블을 가져올 수 있었다. UI는 에셋 스토어에서 가져와서 썼다.https://assetstore.unity.c.. 공장 게임 돈 추가 게임 시간선이 중세 시절이라, 다른 공장 게임처럼 팔리면 돈이 바로 들어오는 것이 아닌입출금의 딜레이가 걸리도록 만들었다.. 지갑주소가 있고보유금액이 있는 단순한 형태public class Wallet{ public string address; CashMover cashMover; int amount; public Wallet(CashMover cashMover, string address) { this.cashMover = cashMover; this.address = address; cashMover.RegisterWallet(this); } public void AddMoney(int money) { thi.. 공장 게임 건물 재설치 건물을 실수로 잘못 설치했을 때, 혹은 위치를 변경하고 싶을 때 건물의 위치를 바꿀 수 있는 기능을 추가해 보자. 일단 건물에 대해 상호작용하기 위해 건물을 클릭하면 상호작용 창이 뜨도록 건물에 Box Collider2D 입혀주고 마우스가 콜라이더를 클릭하면 창이 나타나는 방식으로 했다.if (Mouse.current != null){ if (Mouse.current.leftButton.wasPressedThisFrame) { Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Mouse.current.position.ReadValue()); RaycastHit2D hit = Physics2D.Raycast(.. 공장 게임 건물 설치 건물을 설치하는 기능을 만들어보자.설치될 건물과 건물이 차지하는 면적을 설정하는 자료형식을 만들어준다.using System.Collections.Generic;using UnityEngine;[CreateAssetMenu(fileName = "BuildSizeData", menuName = "Scriptable Objects/BuildSizeData")]public class BuildSizeData : ScriptableObject{ public List sizes = new List(); public List input = new List(); public List output = new List(); public GameObject buildPrefab;} 면적 미리보기 생성.. 공장 게임 애니메이션 추가 처음에는 애니메이션과 그림 모두 그리려 했으나. 도저히 못할거같아서 ai로 생성하려했다.그리고 저 인부 애니메이션을 만들었다. 하지만 곡괭이랑 재련소 애니메이션이 잘 만들어지지 않아서.코딩쪽을 완성하기 전에는 그냥 날림으로 때우기로 하였다 공장 게임 만들기 시작 유니티 뭔가 마법 세계관을 짜고 있다가 그 세계에서 철 제련법은 달라질까? 고민하다가.공장게임을 만들기로 한 이상한 흐름. 아이디어는 대략 모바일 공장게임에컨베이어 벨트 대신 사람이 운반하는, 기계 대신 인간 콘셉트를 기반으로무역 시스템도 엮어서. 철 n개를 분당 지급받는다. 분당 m원 차감.그래서 철을 비싸게 주고 공장을 운영하다. 다른 지역에서 철을 직접 제련해서값싼 비용으로 순수익을 높이는 전략. 사람이 이동하는 것과 타일 기반 오브젝트 같은 틀을 만들었다.이 기능들을 구현할 때 사용된 문법들[ContextMenu("PlaceObject")] // 이 컴포넌트를 가지는 오브젝트의 인스펙터 창에public void Place()//이 컴포넌트 설정에 :. 점 3개 있는 더보기 칸에서 바로 이 함수를 실행할.. 이전 1 다음