디자인 패턴이란?디자인 패턴은 소프트웨어 디자인에서 자주 발생하는 문제들을 해결하기 위한 재사용 가능한 방법이다. 이러한 패턴들은 공통된 설계 문제들을 효과적으로 해결할 수 있도록 검증된 방법론을 제공하며, 코드의 유지보수성, 확장성, 이해성을 향상시다. 디자인 패턴 종류 1) 생성 패턴(Creational Pattern)생성패턴은 객체를 생성하는데 필요한 패턴들이다.객체의 생성을 캡슐화하여 전체적인 프로그램 구조에 영향을 주지 않으면서 확장성을 갖게 만든 패턴이다. 팩토리 메서드 패턴(Factory Methods Pattern)추상 팩토리 패턴(Abstract Factory Pattern)싱글톤 패턴(Singleton Pattern)빌더 패턴(Builder Pattern)프로토타입 패턴(Prototyp..
Record/TIL
스크립터블 오브젝트(ScriptableObject)스크립트 기반의 데이터 컨테이너이다. 데이터를 저장하고 관리하기 위한 컨테이너 느낌이다. 장점:메모리 관리와 성능 향상: 스크립터블 오브젝트는 인스턴스화된 MonoBehaviour보다 경량화되어 있어 메모리 사용량이 적고, 여러 인스턴스 간 데이터 공유가 좋다.데이터 중심 설계: 주로 데이터를 저장하고 관리하는 용도로 설계되어 있어, 게임의 다양한 설정, 상태, 아이템 등을 쉽게 표현하고 변경할 수 있다. (기획자도 쉽게 변경가능)재사용성: 데이터를 포함하는 스크립터블 오브젝트는 프로젝트 전반에서 재사용할 수 있다.직렬화와 저장: 유니티의 직렬화 기능을 이용해 파일로 저장하거나 네트워크를 통해 전송할 수 있다. 단점:디자인 및 구현 복잡성: 스크립터블 ..
개요레퍼런스 게임: 길건너 친구들 플레이어가 다양한 장애물을 피하면서 길을 건너는 것이 목표입니다.플레이어는 끊임없이 움직이는 장애물을 피해 최대한 먼 거리를 이동해야 합니다. 주요 기능 키보드 입력 처리방향키를 이용하여 플레이어가 좌우 위치를 바꾸거나 앞으로 이동할 수 있도록 하는 기능입니다. 한번의 입력에 한칸씩 이동합니다.카메라가 플레이어에게 고정됩니다.오브젝트 생성 기능자동차, 나무, 도로 등의 오브젝트가 플레이 시 자동으로 생성/삭제가 됩니다.충돌 기능충돌 시 게임오버가 됩니다.게임의 화폐인 사과 아이템과 충돌 시 가지고 있는 사과의 숫자가 올라갑니다.애니메이션 기능플레이어 캐릭터가 가만히 있을 때 크기가 작아졌다 커졌다 하며 동적인 느낌을 받습니다.이동할 때 점프를 했다가 중력을 받아 내려와..
무엇을 기준으로?플레이어 오브젝트의 Input에 따라 맵이 갱신됨. //PlayerComtroller.cs의 Update 메서드 // 플레이어의 현재 위치를 기반으로 맵을 갱신 mapManager.MoveMap(transform.position.z); 맵은 어떻게 겹치지않게?맵은 Z방향으로 1씩 누적해서 그 좌표에 생성되면 됨.똑같이 Z의 Scale이 1이라면 그냥 따로 정해줄 필요가 없겠지만 나는 그라운드별 크기가 다 다르기 때문에 변수를 만들어줘서 넣어줬다.예를들면 이런식으로 말이다. // CarRoad.cs public int scaleNum = 2; 그러면 이제 MapManager.cs가 참조를 해서 ScaleNum의 값을 저장한다.using System.Coll..
LOD란 Level Of Detail(LOD)란 3차원 컴퓨터 그래픽스 관련 기술로, 3D 모델 표현의 복잡도를 거리에 따라 차등을 두어 부하를 줄이는 최적화 기술이다. 일반적으로 지오메트리 디테일만을 일컫는 개념이나, 엔진에 따라서는 밉맵과 같은 텍스쳐 필터링, 셰이더의 변경 역시 LOD에 포함시킨다.게임에서 가장 많이 사용되며, 그 이외의 경우는 내비게이션 같은 GIS 활용 어플리케이션에서 자주 볼 수 있다.일반적으로 LOD는 렌더링되는 객체의 세부 수준을 조절하여 시스템의 그래픽 성능을 향상시키는 데 사용된다. 이는 컴퓨터의 그래픽 처리 능력이 제한되어 있거나, 실시간 렌더링 환경에서 더 많은 프레임 속도를 유지해야 할 때 특히 유용하다.보통 LOD는 다음과 같은 세 가지 방법으로 구현된다.Geom..
길건너 친구들 게임을 만들기전 고 계속되는 맵을 만들기 위해서는 어떻게 하는게 좋을까? 싶어서 오브젝트풀 개념을 가져와봤다.오브젝트 풀링은 객체를 미리 생성해 두고 필요할 때 가져다 사용하고, 사용이 끝나면 다시 풀에 반납하는 방식.오브젝트 풀링은 생성과 소멸이라는 비용이 큰 작업을 최소화함으로써 성능을 향상시키는 데 중요한 역할을 한다.빈번하게 생성하고 파괴되는 객체(예: 총알, 입자 등)에 대해 중요하며, 이런 객체들을 풀에 저장해 놓고 재사용함으로써 메모리 할당과 가비지 컬렉션에 따른 성능 저하를 방지할 수 있다.오브젝트 풀링은 적절히 사용하면 큰 성능 개선을 가져올 수 있지만, 불필요한 메모리 사용을 증가시킬 수 있으므로 사용 시에는 신중해야한다. 오브젝트 풀링을 하는 코드. using Sys..