Print Friendly and PDF

유니티/최적화 4

[최적화] Assembly Defintion

Library란?- 컴퓨터 프로그램이 사용하는 비휘발성 자원(함수, 데이터 ,타입 등)의 모임 DLL(Dynamic-Link Library) 이란?- 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함한 라이브러리 PDB(Program DataBase)파일 이란?- 앱의 디버그 구성에 대한 링크를 허용하는 디버깅 및 프로젝트 상태 정보가 저장됨 Assembly Defintion이란?-  우리가 작성하는 코드는 Assembly-CSharp.dll에 모두 들어가 있는데 크기가 크면 클수록 컴파일이 오래 걸리는데 이것을 방지하기 위해 사용하는 기능- 첨부 사진처럼 ThirdParty.dll의 코드가 수정이 되면 나머지 stuff.dll, Library.dll은 컴파일 할 필요 없기 때문에 컴파일 시..

유니티/최적화 2025.01.13

[최적화] 스크립터블 오브젝트

스크립터블 오브젝트란?- 스크립터블 오브젝트는 데이터를 저장하고 공유하기 위한 데이터 컨테이너입니다. Unity에서 제공하는 ScriptableObject 클래스를 상속받아 만들며, 프로젝트 내에서 애셋으로 저장됩니다. 사용방법[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/Example")]public class ExampleScriptableObject : ScriptableObject{ // 데이터 필드들}[CreateAssetMenu( fileName = "NewData", // 생성될 파일의 기본 이름 menuName = "MyGame/NewScriptableObject", // Project 창의 ..

유니티/최적화 2025.01.12

[최적화] 오브젝트 풀링

void Example() { // 1. 메모리 할당 string name = "Hello"; // 2. 새로운 값 할당 name = "World"; // 이때 "Hello"는 더 이상 참조되지 않는 가비지가 됨 // 3. GC가 주기적으로 실행되어 "Hello" 문자열이 차지하던 메모리를 해제}오브젝트 풀링이란?- 자주 생성되고 파괴되는 객체들을 미리 생성해두고 재사용하는 메모리 관리 패턴- 게임에선 총알, 파티클, 몬스터 등 관리할 때 주로 사용 질문Q. 풀링이 필요한 이유A. 성능영향:생성/파괴 시 발생하는 비용, 컴퍼넌트 초기화, 가비지 컬렉션 부화 등 최소화A. 지속적 생성/파괴로 메모리 단편화 현상 예방, 일관된 메모리 사용 패턴 유지A..

유니티/최적화 2025.01.10

[최적화] 유니티 어드레서블 개념 정리

어드레서블이란?- 유니티에서 제공하는 에셋 관리 시스템- 콘텐츠 효율적 관리하고 로드하는 방법을 제공 특징- 동적 콘텐츠 로딩: 게임 실행중 필요 에셋을 동적으로 로드, 언로드 가능- 메모리 효율성: 필요 시점에만 메모리에 로드하여 메모리 사용 최적화- 콘텐츠 주소 체계: 문자열 키를 통해 에셋에 접근할 수 있어 유연한 리소스 관리 가능 질문Q. 어드레서블이 기존의 리소스 로딩 방식과 가장 크게 다른 점은?A.기존 리소스시로드, 인스펙터를 이용한 방식과 다르게 동적 로딩이 가능한점A. 필요하지 않을때 메모리 해제 가능A. 빌드 시점이 아닌 런타임 로딩 결정 가능 Q.동적 콘텐츠 로딩이 게임 개발에서 왜 중요한 이유?A. 업데이트나 패치로 유저들에게 바로 콘텐츠 제공이 가능A. 초기 다운로드 크기 감소A...

유니티/최적화 2025.01.09