목록게임 개발 (19)
게임 개발 로그

1. 행동 트리 설계 2. 행동 정리2-1. 죽음/그로기 상태가장 높은 우선순위를 갖는 상태다. 체력 조건을 검사하여 0보다 작거나 같다면 죽음 상태와 그로기 상태 중 한 가지를 고른다. 만약 첫 번째 죽음이라면 그로기 상태고, 그 이상의 죽음을 맞이했다면 Death 상태로 간다.그로기 상태에서는 이동을 하거나 가만히 있을 수 있다. Groggy(이동) 상태/Groggy 상태 둘 중 한 가지 상태를 선택하게 된다. 2-2. 문 상호작용 상태문과 충돌되어 있으며, F 키를 누르고 있을 때 진행되는 상태다. 맵 중 샛길(지름길)을 열기 위해 문과 상호작용하는 상태다. 2-3. 빠르게 뛰기 상태Q를 눌렀을 때 빠르게 뛸 수 있다. 이동키와 함께 조작해야 한다. 빠르게 뛸 때 스태미나가 필요하다. 빠르게 달리..

참고 영상 참고 영상과 실제 개발된 화면에 차이가 있는 이유는 빌트인 프로젝트와 URP 프로젝트에 차이가 있기 때문이다. URP 프로젝트에서는 따로 Surface Shdaer가 없기 때문에 해당 영상에서 제시하는 셰이더대로 제작하는 것에 무리가 있다.그래서 Shader Graph를 만들어서 해당 기능을 적용하는 방법을 따로 노션에 정리해 두었다. 참고 영상과 결과물에 차이가 있기 때문에 좀 더 업데이트가 필요하지만 현재까지의 해결법을 적은 노션 링크를 올려 두겠다. Field of View | Notion1. 해결법 참고 영상metal-catamaran-8b6.notion.site

1. 설거지 시스템WashingArea설거지 시스템이 구현되는 공간에 대한 클래스다. WasingArea는 WashingUI, Plate를 참조하여 가지고 있다. 역할Plate 풀링: WashingArea는 Plate를 담은 Queue와 List가 있다. 사용 가능한 접시를 Queue에 넣어두고 있으며, 사용할 때는 Queue에서 꺼내서 List에 담는다.Plate 생성: WashingArea에는 CreatePoint(Vector3)가 있다. 이 CreatePoint에서 Plate를 생성하는 역할을 한다. Plate를 생성할 때는 난이도(level)에 따라 Plate의 hp와 한번에 생성되는 Plate의 개수를 랜덤성을 적용하여 생성한다.Plate 삭제: 현재 선택된 Plate(selectPlate)의..

0. 구현Managers GameManagerEventBusManagerLoadingSceneManagerSoundManager GameManager게임 진행 중인지 판단 및 점수/시간 기록, 게임 오버 판단 등을 담당함.public class GameManager : SingleTon{ public bool bGameOver = false; public int score = 0; public int enemyScore = 0; public float time = 60; public bool isPlaying = true; private void Update() { if (isPlaying) { time -= Time.d..

0. 구현 화면 문제 및 해결 방법문제 0. 최상단 그릇 위치에 따른 PlateHpUI 위치 수정Plate.cs // isSelected, 최상단의 오브젝트에 Collision Event가 발생하면 UI 위치도 변경되도록 함. void OnCollisionEnter(Collision col) { StartCoroutine(IOffPlateKinematic()); if (isSelected) Managers.Instance.Event.Publish(EEventType.SetPlateHpPosition); } WashingArea.csvoid SetSelectPlateHpPosition(EventParam param)hp ui의 위치를 바..

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..

1. 설거지 그릇이 경로를 벗어나는 문제 해결. private void OnAddPlate(EventParam param){ if (plates.Count == 0 || selectPlate == null || selectPlate.CurHp == selectPlate.MaxHp) AddPlate(GetRandomCreateCount()); else PutInPlate(GetRandomCreateCount());}Add Plate가 되는 방법은 두 가지가 존재.(1) 위에서부터 그릇이 떨어진다. (2) 아래에서부터 그릇이 차오른다.→ 설거짓거리가 남지 않았을 경우 (2)번으로 처리해서 그릇이 날아가는 현상이 발생했음. → 따라서 plates.Count == 0 조건을 추가하여 남은 설거짓거리가..

1. Scene의 UI 모두 수정11/20 전달받은 애셋들을 모두 UI에 적용함. 2. TitleScene 제작 Text의 Alpha 값 설정 등을 통해 TitleScene 간단하게 제작함.

애셋 오류 수정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..