본문 바로가기

프로그래밍49

[Unity | 게임 디자인 패턴] 싱글톤 패턴의 사용 GameManager나 SoundManager와 같은 유일한 객체는 싱글톤 패턴으로 관리하는게 편리하다. 싱글톤 클래스 작성법에는 여러가지가 있으나 여기에서는 MonoBehaviour를 상속받는 싱글톤 클래스를 작성해 보았다. 인스턴스를 생성한 방법을 눈여겨 봐야 하는데, 게임을 처음부터 플레이할 경우는 상관없으나 특정 씬만을 테스트할때 다른 씬의 싱글톤 클래스를 참조해야 할 경우가 있다. 이 때 null exception이 발생하므로 이에 대한 처리로 Resource폴더에서 프리팹을 불러와 인스턴스를 생성하도록 하였다. 이 클래스를 상속받으면 싱글톤 패턴이 적용된다. 덧붙이자면 참조가 많은 public 프로퍼티나, 변수, 함수는 static으로 작성하여 '클래스명.객체명' 형식으로 바로 접근하도록 하는.. 2018. 3. 4.
[Unity | 게임 디자인 패턴] FINITE STATE MACHINE (유한상태기계) FINITE STATE MACHINE(유한상태기계)란? AI를 구현하기 위한 개념적 모델 중 하나이다. 여러 개의 유한한 상태(State)가 존재하고, 그 상태들이 특정 조건들에 의해 서로 연결되어 있는 형태를 의미한다. ※ 이미지 출처: gamedevelopment.tutsplus.com FSM의 장점 직관적인 도표로 나타내므로 AI의 구조를 프로그래머 이외에 제3자가 쉽게 확인/설계 가능하다. 정해진 규칙이 있기 때문에 프로그래머가 더 안전성 높은 코드를 만들어 낼 수 있다. 각각의 상태로 나뉘어져 있기 때문에 새로운 상태의 추가 및 삭제가 용의하다. |작성자 GSeMinZ 2017. 6. 11.
[자료구조] 이진트리(Binary Tree) 이진트리(Binary Tree)란? 한 노드가 최대 두 개의 자식 노드를 가지는 트리를 말한다. 첫 번째 노드를 부모 노드라고 하며 자식 노드는 왼쪽(left)과 오른쪽(right)으로 불린다. 방향 간선(directed edge) : 부모에서 자식으로 가는 경로(그림의 화살표 부분)루트 노드(root node) : 부모가 없는 노드. 트리는 하나의 루트 노드만을 가진다.단말 노드(leaf node) : 자식이 없는 노드깊이(depth) : 루트 노드에서 자신까지 가는 경로의 길이레벨(level) : 트리의 특정 깊이를 가지는 노드의 집합. 루트 노드의 깊이는 0이다.높이(height) : 루트 노드에서 가장 깊이 있는 노드까지 가는 경로의 길이. 루트 노드만 있는 트리의 높이는 0이다.형제(siblin.. 2017. 4. 13.
[Java | 자바] Java의 메모리 관리 1. 일반적인 메모리 관리 - Java 가비지 플랫폼은 자도으로 사용했던 메모리를 해제하는 가비지 컬렉션(Garbage Collection) 기능을 수행한다. - 프로그래머가 직접 메모리 관리를 하는 경우에 생길 수 있는 문제점 => 할당된 메모리 영역 초과 : Java 언어는 참조현 변수들에 대한 산술 연산을 금지시킴으로써 C언어의 포인터로 인해 발생되었던 메로리 초과 문제를 최소화 => 메모리 부족 : 프로그래머가 크기가 작은 메로리의 생성, 해제를 자주 반복할 경우, 실제 남아 있는 메모리는 충분하지만 연속적인 메로리 공간의 확보가 어렵게 되어 시스템에서 '메모리 부족' 에러가 발생 => 메모리 영역을 벗어남 : 객체를 생성하여 메모리 할당을 받았지만, 이를 해제하는 것에 대해서 고려하지 않은 채 .. 2017. 4. 12.