C#을 이용해 만들었습니다. 이진 공간 분할법(BSP: Binary Space Partitioning)에 대해 공부하다가 BSP는 결국 이진 트리 기반의 알고리즘인 것을 알게 되었다. 이진 트리는 각각의 노드가 최대 두개의 자식 노드를 가지는 트리 구조 인데 문득, 이진 트리에 대해서 알고 있지만 실제로 만들어보면 도움이 되지 않을까? 라...
이진 탐색 트리(binary search tree) 구현해보기
컴포넌트 패턴
한 객체가 소지한 여러 기능이 서로 커플링 없이 작동할 수 있게 구현하는 패턴 아래의 상황에 놓여있다면 사용을 고려해볼만한 패턴 - 한 클래스에서 여러 분야를 건드리고 있어서 이들을 서로 디커플링 하고 싶다 - 클래스가 거대해져서 작업하기가 힘들다 - 여러 다른 기능을 공유하는 다양한 객체를 정의하고 싶다. 단, 상속으로는 딱 원하는 부분만 ...
얕은 복사와 깊은 복사
업무를 진행하다가 예상하지 못한 이슈를 발견했었고 이를 해결하면서 다시 실수하지 않기 위해 정리 했습니다. 1. 무슨 문제가 발생했었는데?? 문제 상황을 예시로 설명하면, 상점에 아이템이 100개가 있고 100개 중에 10개를 뽑은 후 특수 기술이 적용되어 있는지 체크를 해주어야 하는 기능을 구현 했는데 특수 기술이 적용되지 않은 아이템...
Strong Reference 와 Weak Reference
1. Strong Reference VS Weak Reference 우리 말로 강한 참조 VS 약한 참조 new() 메소드를 사용 -> 강한 참조 WeakReference 클래스를 사용 -> 약한 참조 GC가 메모리를 정리할 대상인지 판단하는 여부 강한 참조 : 참조 되어지는 root 객체로부터 사슬이 ...
Event 와 Delegate 차이
1. Delegate란? delegate: 대리자 남의 일을 대신 해주는 역할 이라고 생각하면 된다 즉, 대리자를 통해 들어온 업무(메소드)들을 대리자 호출을 통해 한번에 처리하는 개념 C++ 에선 함수 포인터랑 비슷하다 2. Event란? delegate의 일종 delegate가 변수라면 Event는 Property라...
Class 와 Struct 차이
1. 할당되는 메모리 영역의 차이 할당영역 특징 장점 단점 Class Heap 힙은 런타임에 할당되는 영역 new 등의 동적 할당을 통해 프로그램 실행 중 필요한 만큼 가변적으로 확보 정리에는 delete 나...
참조 형식에 ref는 무슨 의미일까
내용에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 남겨주세요! 캡쳐 이미지는 모두 설명을 위해 간단하게 만든 것입니다. (스택에 쌓이는 순서 고려하지 않았습니다.) 1. 값 형식, 참조 형식 C++을 하다가 C#을 하면서 가장 난해하고 이해하기 어려웠던 부분이 값 형식과 참조 형식이었다. C++에서의 포인터나 레퍼런스처럼 명확한 느낌이 ...
Vector
정의 유클리드 벡터(Euclidean Vector) 또는 벡터(Vector)는 유클리드 공간에서 크기와 방향을 모두 포함하는 기하학적 대상 기하학적 의미의 벡터 벡터는 위치가 중요하지 않다 왜냐하면 위치가 바뀌여도 벡터의 크기와 방향이 변하지 않기 때문 즉, 두 벡터가 길이가 같고 같은 방향을 가르킬 때 두 벡터는 상등(Equal...
[Unity] N초 동안 동작해야 하는 기능 구현
게임 개발을 하다보면 N초 동안 특정 작업을 진행해야 하는 기능을 구현할 때가 많은데 이럴 때, 어떻게 구현할 수 있는지 알아보자 설명은 Unity로 하였습니다. 사용법 Time.deltaTime / N(작업을 진행하고 싶은 시간(초)) 을 사용 public IEnumerator NTimeWork(float duration) ...
[UE4] 키 입력을 통해 Pawn 객체 움직이기
언리얼 엔진 공식 문서 - UE4 의 입력 동작 및 축 매핑 1. Key Binding 설정하기 Project Setting 에서 Engine - Input 을 통해 키 바인딩 세팅을 할 수 있다. 키를 누르지 않음: 0 반환 키를 누름: 1 반환 +버튼 클릭으로 바인딩을 추가할 수 있다. 2. C++을 이용하...