목록전체 글 (42)
게임 개발 로그

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

PlayerPrefs유니티의 PlayerPrefs는 게임 세션 간에 플레이어 기본 설정을 저장하는 클래스다. 문자열, 부동 소수점 및 정수 값을 사용자의 플랫폼 레지스트리에 저장할 수 있다. 주의: Unity는 암호화 없이 로컬 레지스트리에 PlayerPrefs를 저장하기 때문에 민감한 데이터를 저장하면 안 된다. 레지스트리 위치HKEY_CURRENT_USER/Software/Unity/UnityEditor/CompanyName/projectName 저장PlayerPrefs.SetString/SetInt/SetFloat... 등을 이용해서 값을 저장할 수 있다. // Saveif (Input.GetKeyDown(KeyCode.S)){ string setID = "Inha2024"; ..

'유니티로 배우는 게임 디자인 패턴' 책을 베이스로 하여 코드 구조를 바꿔 봤습니다. 옵저버 패턴이란? 옵저버 패턴이란 한 오브젝트가 주체 역할이고, 다른 오브젝트들이 관찰자 역할을 하여 일대다 관계를 형성하는 패턴이다. 이벤트 버스 패턴과 비슷한 면이 있으나 이벤트버스는 다대다 관계라는 점에서 차이가 있다. 옵저버 패턴의 장점역동성: 주체에 필요한 만큼의 객체를 관찰자로 추가할 수 있고, 동적으로 제거할 수도 있다.일대다: 객체 하나에 여러 이벤트를 처리할 수 있는 일대다 관계 이벤트 처리 시스템을 구현할 수 있다. 옵저버 패턴의 단점무질서: 관찰자가 알람을 받는 순서를 보장하지 않는다. 관찰자가 이벤트를 받는 것에 순서가 있다면 기본 형태의 옵저버 패턴은 적합하지 않다.누수: 주체는 ..

'유니티로 배우는 게임 디자인 패턴' 책을 베이스로 하여 코드 구조를 바꿔 봤습니다. 오브젝트 풀이란? 오브젝트 풀 패턴은 자주 사용하는 오브젝트를 위해 일부 메모리를 '예약'하는 방법을 말한다. 오브젝트의 생성/삭제를 반복하지 않고, 풀에서 꺼냈다가 다시 집어넣는 형식이다. 이것은 새로운 인스턴스를 생성하는 초기화 비용을 아끼고, 가비지 컬렉터의 부하를 줄여 렉을 줄이는 것에 도움이 된다. 클라이언트가 특정 오브젝트의 인스턴스를 오브젝트 풀에 요청하면, 풀에서 해당 인스턴스를 "제거"하고 클라이언트에게 넘겨준다. 만약 풀이 없다면 새로운 오브젝트를 생성해서 넘겨준다. 클라이언트에서 해당 인스턴스가 필요없어지면 오브젝트는 풀로 돌아가는데, 풀에 공간이 없다면 해당 오브젝트 인스턴스는 파괴된다. ..

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