분류 전체보기

    Unity의 WaitUntil 코루틴

    Unity의 WaitUntil 코루틴은 특정 조건이 만족될 때까지 기다리는 코루틴입니다. WaitUntil 코루틴은 다음과 같은 형식을 사용합니다. public IEnumerator WaitUntil(Func predicate) { while (!predicate()) { yield return null; } } WaitUntil 코루틴은 predicate() 함수를 사용하여 특정 조건을 확인합니다. predicate() 함수가 true를 반환하면 WaitUntil 코루틴은 다음 코드로 이동합니다. predicate() 함수가 false를 반환하면 WaitUntil 코루틴은 yield return null을 반환하여 다음 프레임으로 이동합니다. WaitUntil 코루틴의 사용 예 WaitUntil 코루틴..

    IEnumerator 메서드에서 async await 사용

    최근 작업중인 게임 데이터를 Local에 저장하던 것을 Firebase의 Database로 옮기는 작업을 진행하고 있다. DB에 데이터 저장은 잘되는데 Load가 제대로 되질 않아 삽질을 했던 경험을 공유하고자 한다. 내 프로젝트의 GameManager는 게임을 시작할 때 게임의 구성을 갖추는 셋팅을 할 때 IEnumerator 함수를 통해 플레이어를 생성 및 초기화하고 게임을 구성한다. Firebase에서 데이터를 가져오기 위해 FirebaseManager에 접근해 데이터를 로드하는 async 함수를 실행하면 Unity가 작동을 멈췄다. Unity의 IEnumerator 함수안에서 async 사용시 응답없음 문제가 발생하는 이유는 IEnumerator 함수가 Deferred Execution을 사용하기..

    4자 광폭 축양장 DIY - 1차

    인터넷으로 싸게 구매한 축양장 원목이다. 마감이 그렇게 좋진 못하다... 저렴하게 구매했으니 이해하고 넘어가야겠다 설명서도 없어 일단 느낌오는대로 목공용 풀을 붙이고 나사 구멍에 있는곳에 드라이버로 체결해봤다 결합되는 부위엔 구멍이 없어 구멍 뚤린 부분만 들어가고 결합이 안된다... 아는 지인에게 임팩을 빌려와서 다시 해야겠다 완성된 축양장 모습 다리 설치할 때 보강대 빼 먹고 결합해서 피스를 다시 풀고 끼워넣고... 맨 아랫부분은 바닥에서 5cm정도 띄워서 결합하는데 이 부분이 수평 맞추기가 많이 힘들었다 제일 문제는 이 집의 수평이 안맞아서 바닥에서 직각으로 붙여서 만들었는데 제대로 안붙어서 여기저기 틈이 많다... 피스를 여러번 끼웠다 뺏다하며 겨우 맞춘 수평 어항에 물을 직수로 공급하기 위한 정수..

    C# 람다 식 : 캡처

    C#에서 람다 식은 일회성으로 사용되는 함수를 나타내는 간단한 표현입니다. 람다 식은 다음과 같은 형태로 사용됩니다. (매개변수) => { // ... // ... // ... return 결과; } 람다 식의 장점 람다 식은 다음과 같은 장점이 있습니다. 코드를 간결하게 작성할 수 있습니다. 코드의 가독성을 높일 수 있습니다. 코드의 재사용성을 높일 수 있습니다. 람다 식의 사용 예 람다 식은 다음과 같은 곳에서 사용할 수 있습니다. Action, Predicate, Func 형식의 매개변수에 전달할 수 있습니다. LINQ 쿼리에서 사용할 수 있습니다. 익명 메서드로 사용할 수 있습니다. 람다식에서 사용되는 캡처 람다 식에서 사용되는 캡처는 람다 식 내부에서 사용할 외부 변수를 가리키는 참조입니다. 람..

    C#의 HashSet<T>

    C#에서 HashSet는 중복되지 않는 요소를 저장하는 컬렉션입니다. HashSet는 해시 테이블을 사용하여 요소를 저장하기 때문에, 요소를 빠르게 검색할 수 있습니다. HashSet의 선언 HashSet는 다음과 같이 선언할 수 있습니다. C# HashSet set; 여기서 T는 HashSet에 저장할 요소의 형식입니다. HashSet의 초기화 HashSet는 다음과 같이 초기화할 수 있습니다. set = new HashSet(); 또는, 다음과 같이 요소를 사용하여 초기화할 수 있습니다. set = new HashSet(new List()); HashSet에 요소 추가 HashSet에 요소를 추가하려면 Add() 메서드를 사용합니다. set.Add(new T()); 또는, 다음과 같이 리터럴을 사용하..

    C#의 char 자료형

    C#에서 char 자료형은 단일 문자를 저장하는 데 사용되는 자료형입니다. char 자료형의 크기는 16비트이며, 유니코드 문자를 저장할 수 있습니다. char 선언 char 자료형은 다음과 같이 선언할 수 있습니다. char ch; char 초기화 char 자료형은 다음과 같이 초기화할 수 있습니다. ch = 'A'; // 문자 'A'를 저장합니다. ch = '가'; // 한글 문자 '가'를 저장합니다. ch = '\n'; // 줄 바꿈 문자를 저장합니다. char 자료형의 활용 char 자료형은 다음과 같은 방법으로 활용할 수 있습니다. 문자열을 처리하는 데 사용합니다. 코드의 로케일을 설정하는 데 사용합니다. 특수 문자를 처리하는 데 사용합니다. char 자료형을 0~9까지의 숫자로 활용 ASCII..

    코드 실행시간 측정 : Stopwatch

    C#에서 코드의 실행시간을 측정하기 위해서는 Stopwatch 클래스를 사용할 수 있습니다. Stopwatch 클래스는 코드의 시작 시간과 종료 시간을 기록하여, 두 시간의 차이를 계산하여 실행시간을 구할 수 있습니다. Stopwatch 사용법 // Stopwatch 클래스를 생성합니다. Stopwatch stopwatch = new Stopwatch(); // 코드를 실행합니다. stopwatch.Start(); // ... stopwatch.Stop(); // 실행시간을 구합니다. TimeSpan elapsedTime = stopwatch.Elapsed; 위 코드는 코드의 시작 시간과 종료 시간을 기록하고, 두 시간의 차이를 계산하여 실행시간을 구합니다. Stopwatch의 속성 Stopwatch 클..

    Unity에서 유연한 인스턴스 생성

    Unity에서 Activator.CreateInstance는 지정된 클래스의 인스턴스를 생성하는 메서드입니다. Activator.CreateInstance는 다음과 같은 두 가지 형식으로 사용할 수 있습니다. Activator.CreateInstance(Type type): 지정된 클래스의 인스턴스를 생성합니다. Activator.CreateInstance(Type type, Object[] args): 지정된 클래스의 인스턴스를 생성하고, 인스턴스를 초기화하기 위해 지정된 인수를 사용합니다. Activator.CreateInstance(Type type)의 사용법은 다음과 같습니다. Type type = typeof(GameObject); GameObject gameObject = Activator.C..