본문 바로가기

NOTE/Unity40

[Unity] 짧은 개념 정리 [sealed]- 봉인클래스 즉, 상속을 할 수 없게 만든다.- 메소드에 선언하면, 상속은 할 수 있어도 상속된 클래스에서 메소드를 오버라이드 못하게 막을 수도 있다. [lock]- critical section 처럼 문 블록을 임계 영역으로 표시하는 것.- 즉 한번에 한 스레드만 임계 영역의 처리를 할 수 있는 것. class Account { decimal balance; private Object thisLock = new Object(); public void Withdraw(decimal amount) { lock (thisLock) { if (amount > balance) { throw new Exception("Insufficient funds"); } balance -= amount; }.. 2016. 9. 29.
[Unity] 힙 메모리 최적화와 오브젝트 풀링 (펌) 출처 : http://teddy.tistory.com/메모리 힙영역프로그램이 돌아가면서 생성되는 값들은 값들은 메모리의 힙영역에 할당된다. 이것을 동적 메모리 할당이라 부른다. 게임을 예로들면 캐릭터를 새로 생성으로 인한 값 생성, 네트워크 작업을 통해 일정한 데이타를 받아 배열을 생성하거나 등등.. 많은 부분에 동적이 메모리 할당이 일어난다. 이러한 메모리 할당 요청이 발생하면 힙 메모리를 관리하는 관리자가 필요한 만큼의 영역을 힙에 예약한다. 예약된 영역은 다른 값이 할당될 수 없는 곳이된다. 예약된 곳은 핸들러나 포인터를 반환하여 값을 할당하는 등의 접근이 가능하게 된다. 누수 현상(memory leak)오류로 인한 영역을 가리키는 포인터 반환이 안된경우, 또는 영역의 예약이 잘못 된경우, 등으로 .. 2016. 9. 27.
[Unity] C# 스크립팅 마스터하기 BOOK 요약정리2 [이벤트] - 이벤트 주도적인 설계로 리팩토링하여 Ammo나 Health와 같은 프로퍼티가 Update 함수 안에서 검사되지 않고 값 할당만을 허용 - 새로운 값이 할당될 때 적절한 이벤트가 발생. - 이벤트 주도적인 설계는 성능 최적화 및 청결한 코드 유지가 가능해진다. Update 함수가 값을 검사하는 코드 등의 부담을 줄이고, 특정 값에 따라 반응하는 이벤트를 이용해 적절한 시점에만 이벤트가 불리운다. [이벤트 관리] - EventManager 클래스를 통해 오브젝트가 특정 이벤트를 수신할 수 있도록 한다. - EventListener : 자신이 발생시킨 이벤트를 포함한 어떤 이벤트가 발생하면 알기를 원하는 모든 오브젝트를 리스너라고 부른다. - EventPoster : 다른 모든 리스너가 알 수 .. 2016. 9. 27.
[Unity] C# 스크립팅 마스터하기 BOOK 요약정리1 [스크립트 인스턴스화]- 특정 오브젝트에 스크립트를 컴포넌트로서 추가해 숨을 불어넣는 과정을 인스턴스화라고 한다. [변수 표시]- 특정 private 변수를 표시하길 원할 때, Debug 모드를 켜서 확인하거나 [SerializeField] 특성을 함께 선언한다. [SendMessage와 BroadcastMessage]- 이 함수들을 사용해 오브젝트에 붙은 모든 컴포넌트의 함수를 이름으로 실행할 수 있다.- SendMessage는 하나의 게임 오브젝트에 붙어있는 모든 컴포넌트에 걸쳐 지정된 함수를 부른다.- BroadcastMessage는 SendMessage의 동작과 합쳐져서 게임 오브젝트의 모든 컴포넌트마다 지정된 함수를 부르고, 씬 계층상의 모든 자식 오브젝트와 그 자식 오브젝트에게까지 재귀적으로 .. 2016. 9. 26.