반응형

c# 5

[Unity] C# MonoBehaviour Singleton 유니티 싱글톤 만드는 방법

# 싱글톤 패턴 (Singleton Pattern) 이란? [GoF의 디자인 패턴] 책에서의 싱글턴에 대한 요약은 이렇습니다. 1. 오직 한 개의 인스턴스만 갖도록 보장 외부 시스템과 상호작용 하면서 전역 상태를 관리하는 클래스 같은 경우, 인스턴스가 여러개로 만들어지는 것 자체로도 제대로 작동하지 않는 경우가 발생할 수 있습니다. 게임을 하는 플레이어의 상태, 혹은 게임 자체의 상태를 관리하는 역할의 클래스를 만들려 한다면, 이는 분명 게임에서 하나만 존재하여야 할것입니다. 하나만 가져야 한다는 규칙 자체를 컴파일 단계에서 강제하여 런타임에서 의도하지 않은 동작을 방지할 수 있습니다. 2. 전역 접근성을 제공 로깅, 컨텐츠 로딩, 게임 저장 등 여러 내부 시스템에서 전역적인 방향에서 게임에 대한 상태를..

DEV/Unity Engine 2020.03.13

[C#] Garbage Collection: Mark and Sweep

용어정의 1. Object: 힙의 저장소 단위. 일반적으로는 OOP의 객체를 의미하지만 절차 언어, 또는 함수 언어에도 동일하게 적용된다. 2. Object / Reference graph: 메모리에서 object들의 방향을 나타내는 그래프. 다음 그림이 예이다. node는 메모리에 있는 object이고 edges(arrows)는 한 object가 다른 object의 참조를 들고 있음을 표현하고 있다. object3 , object5 그리고 object6 에서 순환참조가 발생한다. 3. Roots: reference graph에서 시작점의 집합을 뜻한다. roots는 스택에서의 로컬 변수, 전역 변수가 될 수 있다. 위의 예시에서는 녹색 node가 roots에 속한다. 4. Unreachable obje..

DEV/Unity C# 2019.05.11

인터페이스 IEnumerator 와 IEnumerable의 차이

반복자(iterator)에 대한 C#에서 제공하는 인터페이스 세트 foreach를 사용하기 위한 공통 인터페이스를 제공하는데 IEnumerable 클래스이다. IEnumerable + GetEnumerator GetEnumerator는 IEnumerator를 리턴 값으로 가지게 되는데 이 IEnumerator라는 클래스는 쉽게 말해서 땅바닥에 물건들이 널려있다고 가정할때 물건을 가르키는 손가락 같은 역할을 하게된다. IEnumerator + Current + MoveNext + Reset 3가지의 구현해야하는 공통메소드가 있으며, 현재 시점의 개체와 다음 개체, 그리고 현재의 가리키는 손가락을 처음으로 되돌리는, 3가지 약속된 역할을 하는 메소드가 정의되어 있다. 또한 IEnumator를 리턴값으로 뒀을..

DEV/Unity C# 2019.05.09

[C#] how to convert string[] to int[]? 배열 캐스트 변환에 대하여

알고리즘을 풀다가 인풋을 받아서 문자열을 다른 값들로 캐스트 하고자 할 경우 예를 들어서, "45,23,5,4,1,123,58,7,71,11" 이런 값의 인풋을 받았다고 쳤을때, string.split(','); 을 사용하면 string[]이 나오게 되는데, 함수 파라미터로 넘겨서 사용하기 전에 int[]로 변환해야 한다면? for문으로 다 넘겨도 좋지만 코드 한줄로 넘겨준다면 기분좋을거 같다. 당연히 있다. 특정 를 로 변환해주는 함수다. 아래 코드처럼 사용하면 된다. int[] result = Array.ConvertAll( string[] input, ( e ) => int.Parse(e));

DEV/Unity C# 2019.05.02
반응형