목록티스토리챌린지 (8)
게임 개발 로그
TO DO LIST타이틀 씬press the any key ✔️영업 시작 버튼도 누를 수 있고 키도 누를 수 있도록 변경하기 ✔️시놉시스 폰트 배경 어두운 색으로로비 씬클릭 시 이펙트 ✔️ 인풋 매니저 만들기 ✔️ 튜토리얼 씬설거지 크기 줄이기 ✔️ 강조하는 곳 깜빡거리게 하기설거지 할 타이밍에만 배경 깜빡거리게 바꾸기, 대사 연속으로 나오게 하기 인 게임설거지 hp를 fill amount로 만들기설거지 가득 찼을 때 제출 안 되면 ui 팝업으로 가득 찼다고 알리기 0. 구현0-1. Managerspublic class Managers : MonoBehaviour{ static Managers s_instance; public static Managers Instance { get { Init(); re..
애셋 오류 수정URP 프로젝트용 애셋 사용 위해 URP 프로젝트로 변경을 했으나 대량의 오류 생성을 유도함.→ URP Remove를 통해 기존 프로젝트로 복구.싱글/멀티 모드에 따른 세이브 데이터 분리public class Path{ public const string SingleUserDataPath = "/Resources/Json/SingleUserData.json"; public const string MultiUserDataPath = "/Resources/Json/MultiUserData.json";}[Serializable]public class UserData{ public List rankData = new List();}public class UserDataDirector : MonoB..
1. 행동 트리란?행동 트리(Behavior Tree)는 기존의 FSM, HFSM의 확장성 문제를 보완하고, 보다 다양한 AI 패턴을 구현하는 데 최적화된 방법이다. 확장성과 유지보수가 용이하여 AI를 구현할 때 많이 사용된다. 이름에서 알 수 있듯이 행동 트리는 트리를 사용하여 동작을 코드화하는 방법이다. Behavior Tree는 AI Entity의 의사 결정 흐름을 제어하는 계층적 노드 트리라고 할 수 있다. 적에 대한 AI의 행동과 보스 전투 순서 등을 제어하는 데 사용할 수 있다. Tree를 이루는 Node들에 ‘행동’에 해당되는 코드 조각을 저장해 두어 DFS 순서에 따라 노드들을 실행시킨다. Behavior Tree에서 노드들은 방문 시 무조건 저장된 코드 블럭을 실행한다. 그리고 실행 시 ..
0. 구현 후기 구현한 것에 대해 정리하기에는 소규모의 프로젝트라 민망하지만 개인적으로 좋아하는 도트 게임 분위기를 표현한 것 같아서 뿌듯하다. 모두 무료 애셋으로 구현했는데 약 한 시간 가량 애셋 쇼핑을 한 보람이 있는 것 같기도. 효과음이나 배경음악 같은 것도 분위기에 어울리는 것 같아 만족스럽다. 내가 더욱 예쁘게, 보기 좋게 만들려고 노력하다 보니까 더욱 집중하게 되었고 만드는 과정 자체를 즐겼던 것 같다. 요즘 개발이 더욱 재밌게 느껴진다. 이대로 빠이팅.
작성 날짜 2024.11.20. 업무 내용 및 상황 1. 애셋 추가2. 애셋 변경에 따른 SpawnTest 씬 수정3. 애셋 사용을 위한 URP 프로젝트 설정 변경4. UI 비율 변경에 따른 3D 오브젝트 크기 대응 문제점 1. 애셋 추가 중 URP 전용 애셋에 오류 발생 해결 방식 1. URP 프로젝트로 변경. → 변경 중 카메라 문제 발생, 해당 내용 하단에 첨부. 이후 진행 사항 TODO1. UI 변경 (진행 중)2. 손님 애니메이션 추가해야 함.3. 이펙트 추가 코드 작성 내용. 하단에 첨부. 0. 구현0-1. UI 비율 변경에 따른 3D 오브젝트 크기 대응UI Canvas 하단에 UI에 따라 변경되어야 할 오브젝트를 배치함. 0-2. URP 프로젝트 변경 중 문제점카메라 문..
0. 구현랜덤 요소 // WashingAre private int GetRandomHpCount() { // TODO: 수식 수정 int count = UnityEngine.Random.Range(3, level * 3); return count; } private int GetRandomCreateCount() { // TODO: 수식 수정 int count = UnityEngine.Random.Range(1, level + 1); return count; } IEnumerator ICreatePlates(int createCnt) { for (int i = 0; ..
Flappy Bird0. 구현0-1. Spawnerpublic class PipeSpawner : MonoBehaviour{ public GameObject pipePrefab; public float interval = 1.0f; public float range = 2.5f; private void Start() { StartCoroutine("SpawnPipe"); } IEnumerator SpawnPipe() { while (true) { yield return new WaitForSeconds(interval); Instantiate(pipePrefab, new Vector3(transf..
0. 클래스 다이어그램0-1. EventBusManager 1. 구현EventParam & EventTypeSingletone싱글톤 구현 시 발생 가능한 문제점유니티 모든 Scene에 지속되지 않을 수 있음→ DontDestroyOnLoad(instance.gameObject); 를 하여 해결함.유니티의 Hierarchy에 GameObject를 생성 및 할당 필요 → GameObject _createGameObject = new GameObject(typeof(T).Name); → DontDestroyOnLoad(_createGameObject); → instance = _createGameObject.AddComponent();→ 위와 같은 코드를 추가하여 하이라키 창에서 보이도록 함.instance가..