Unity 생명 주기 레퍼런스

컴파일된 응용프로그램의 네이티브 코드가 저장되는 영역이다.전역 변수, 정적 변수 등 프로그램 전반적으로 사용될 수 있는 데이터가 저장되는 영역이다.응용프로그램이 실행되는 시점에 할당된다.지역 변수나 매개변수와 같은 일시적인 데이터가 저장되는 영역이다.컴파일 타임에 크기
값 타입 (Value Type)C참조 타입 (Reference Type)C박싱 (Boxsing)값 타입을 참조 타입으로 변환하는 것참조 객체의 값 타입 필드를 참조 타입으로 변환한다면, 힙 메모리 내부에서도 박싱이 일어날 수 있다.언박싱 (Unboxing)참조 타입을
임시저장
직렬화특정 객체를 바이트 단위로 변경한 뒤 디스크에 저장하거나 네트워크로 보낼 수 있게 만들어주는 것역직렬화직렬화된 바이트 배열을 원래 객체로 변경하는 과정을 의미직렬화의 경우에는 현재 사용하고 있는 데이터에 대해서 영속성을 부여하기 위함이다. 프로그램 종료 후에도 객
컴파일 타임 상수 (컴파일 시 변수가 값으로 대체)스택에 위치 (빠르다)선언과 동시에 값을 할당내장 자료형에만 사용 가능 (사용자 정의 클래스에 사용 불가능)런타임 상수 (런타임 중 상수에 대한 참조)힙에 위치생성자에서 초기화 가능 (그 외 변경 불가능)어떤 타입과도
C때문에 수정이 많이 일어나는 문자열로 예상이 된다면 StringBuilder등의 클래스를 사용하는게 좋다.StringBuilder는 기본적으로 16문자를 담을 수 있는 자리를 잡아, 이렇게 할당 된 크기 내에서는 어떠한 수정을 해도 가비지가 생성되지 않는다.미리 할당
Mark and Sweep 알고리즘을 기반으로 동작하는 것은 같으나 Unity는 세대구분이 없고 메모리 정렬도 없다.Unity 19버전 이상에서는 점진적 GC를 도입하였다.C만일 두 객체가 서로 참조 중이라 하더라도 외부에서 참조가 없어 Mark 되지 않는다면 Swee
C자주 사용하게 되는 델리게이트를 템플릿화 한 것Action함수 파라미터가 T 이고 반환값이 void 인 경우Func<T, TResult>함수 파라미터가 T 이고 반환값이 TResult 인 경우Predicate함수 파라미터가 T 이고 반환값이 bool 인 경우멀티
흔히 다른 언어에서도 지원하는 것으로 클래스의 현재 인스턴스를 가리키는 키워드이다. 매개변수 이름과 클래스 필드가 이름이 같다면 this로 구분할 수 있게 된다.정적 함수 파라미터에 하는 this는 확장 메서드를 만드는데 사용되는 키워드이다.이를 활용하면 멤버 함수를
임계 구역과 관련해 여러 스레드 또는 프로세스들이 한번에 접근하는것을 막는 상호배제 기법이다.임계 구역 (Critical Section)공유된 자원 부분하나의 스레드 또는 프로세스에 의해 소유될 수 있는 Key를 기반으로 한 상호배제기법하나의 스레드 또는 하나의 프로세
두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다.간단한 비유를 하자면 수저가 있고 두 사람이 각각 숟가락, 젓가락을 나눠 가졌다.밥을 먹기 위해서는 수저를 가져야 하는데 이 둘은 각자의 도
싱글턴은 같은 종류의 객체가 하나만 존재하도록 하고, 해당 객체에 대한 단일 접근 지점을 제공하는 생성 디자인 패턴이다.메모리에 한번만 올라가기 때문에 여러 인스턴스의 생성을 통한 메모리 사용을 막을 수 있다.전역으로 메모리에 올라가기에 다른 인스턴스들에서도 자유롭게
객체를 반환하는 함수에서 null을 반환하는게 아닌 null과 의미가 유사한 널 오브젝트를 반환하는 기법이다.실제 null object가 아닌 하는 일은 없는 객체null 여부를 검사하지 않는 코드를 만들 수 있고, 코드를 짧게 가져갈 수 있다.

클래스를 확장하지 않고 클래스의 행동을 변경할 수 있도록 하는 기법이다.게임의 무기 사용을 예시로 들어보자.
프록시 패턴 (Proxy Pattern)
퍼사드는 앱의 전반적인 복잡성을 줄이는 동시에 원치 않는 의존성들을 한 곳으로 옮기기 위해 사용되는 구조 디자인 패턴이다.복잡한 시스템으로부터 간단한 인터페이스를 만들 수 있다.인터페이스의 분리를 통해 클라이언트와 실제 역할을 하는 클래스간 결합도를 낮출 수 있다.퍼사
상태는 객체의 내부 상태가 변경될 때 해당 객체가 행동을 변경할 수 있도록 하는 행동 디자인 패턴이다. 한번에 한 상태만 가질 수 있는 FSM을 제작할 떄 많이 사용한다.상위 인터페이스인 State 에서는 관련 기능들에 대한 함수들을 정의하고, 상속받는 파생 State
호환되지 않는 객체들이 협업할 수 있도록 해주는 구조 디자인 패턴이다. 어댑터는 두 객체 사이의 래퍼 역할을 한다.이미 존재하고 있는 또는 버그가 적은 클래스를 부품으로서 재사용이미 만들어진 클래스를 새로운 인터페이스에 맞게 개조시킬 때출력Adaptee interfac
옵저버 패턴은 객체의 상태 변화를 관찰하는 옵저버들을 두어 변화가 있을 때마다 객체가 옵저버들에게 메소드 등으로 통지하는 행동 디자인 패턴이다. 변화가 있는 객체에서 옵저버 리스트를 두어 변화가 있을 때 리스트에 있는 옵저버들을 호출하게 된다.객체와 옵저버간 결합이 느
각각의 상태들이 독립적으로 필요한 상황에 맞게 동작하도록 하여, 하나의 객체가 여러개의 스크립트로 동작되는 것처럼 보이도록 하는 것.한 번에 한가지 상태만 될 수 있다. 동시에 두 가지 상태가 되지 못하도록 막는 게 FSM을 쓰는 이유 중 하나다.가질 수 있는 상태가

버텍스 쉐이더를 이용해 메시를 빛의 방향으로 바닥에 평면으로 투영되도록 한번 더 그리는 방식평면 지형에 적합한 방식Self Shadow는 적용되지 않음성능이 저렴해 모바일 게임에 적합메시가 적은 그림자용 메시를 준비하는 것이 좋다GitHubhttps://git
Mono : JIT 컴파일을 사용하여 런타임 시점에 요청 시 코드를 컴파일한다.IL2CPP : AOT 컴파일을 사용하여 실행 전에 전체 애플리케이션을 컴파일한다.Mono는 사용하기 쉽고 컴파일 시간이 빠르고, IL2CPP는 컴파일 시간이 느리지만 플랫폼에 맞는 최대