본문 바로가기

전체 글45

4. yield return 에 대해 ( 활용 01 ) 이전 글에서는 yield return이 Unity에서 StartCoroutine()을 통해 어떻게 실행되는지 살펴보았습니다. 이번 글에서는 yield return 을 활용하여 실제 게임에서 자주 사용되는 패턴을 구현해보겠습니다.  yield return을 활용한 애니메이션 제어yield return을 사용하면 특정 시간 간격으로 실행되는 애니메이션을 쉽게 만들 수 있습니다. 예를 들어, 일정 간격으로 오브젝트의 위치를 변경하는 간단한 애니메이션을 만들어 보겠습니다.IEnumerator MoveObject(Transform obj, Vector3 target, float duration){ Vector3 s = obj.position; float t = 0f; while (t  이 .. 2025. 3. 9.
3. yield return 에 대해 (유니티에서의 동작) 이전 글에서는 yield return이 내부적으로 IEnumerator 인터페이스를 구현하는 클래스로 변환된다는 것을 알아보았습니다. 이번 글에서는 yield return이 Unity에서 코루틴과 어떻게 연결되는지 살펴보겠습니다.  StartCoroutine() 은 IEnumerator 객체를 실행한다Unity 에서 yield return을 활용하려면 StartCoroutine() 을 사용해야 합니다.StartCoroutine() 은 IEnumerator를 인자로 받아 이를 실행하는 역할을 합니다.예제 코드를 보겠습니다void Start(){ StartCoroutine(MyCoroutine());}IEnumerator MyCoroutine(){ Debug.Log("Step 1"); yie.. 2025. 3. 9.
2. yield return 에 대해 (내부 동작) 이전 글에서 yield return 을 사용하면 함수 실행을 중간에 멈췄다가 다시 실행할 수 있다는 것을 배웠습니다. 그렇다면, C# 은 어떻게 이를 가능하게 할까요? 이번 글에서는 yield return 이 내부적으로 어떻게 동작하는지 알아보겠습니다.  yield return 이 포함된 함수는 컴파일 단계에서 변환된다yield return 을 포함한 함수는 일반적인 함수처럼 작동하는 것이 아니라, 컴파일러에 의해 특별한 클래스로 변환됩니다. 즉, C# 컴파일러는 해당 함수를 IEnumerator 인터페이스를 구현하는 클래스로 변환하여 실행 흐름을 제어합니다. 예를 들어, 다음 코드를 보겠습니다:IEnumerator MyCoroutine(){ Console.WriteLine("Step 1"); .. 2025. 3. 9.
1. yield return 에 대해 (개념) 이번 시리즈에서는 C# 의 yield return 에 대해 자세히 소개하려고 합니다.처음 접하는 분들도 차근차근 이해할 수 있도록 예제를 중심으로 풀어갈 예정입니다.그럼 첫 번째 이야기부터 시작해 보겠습니다.  일반적인 함수는 중간에 멈출 수 없다일반적인 함수는 실행 중에 빠져나갔다가 다시 돌아올 수 없습니다.예를 들어, 아래 코드를 보면 ...void MyFunc(){ Console.WriteLine(1); Console.WriteLine(2); Console.WriteLine(3);} 이 함수는 한 번 실행되면 끝까지 실행되며, 중간에 멈출 방법이 없습니다. 즉, 1을 출력하고 멈추고 싶어도 그럴 수 없으며, 무조건 2, 3까지 실행됩니다.  yield return 을 사용하면 중간에.. 2025. 3. 9.
Action 과 Func 의 형변환 살펴보기 C# 에서 대리자는 특정 메서드를 참조하는 기능을 제공하는 중요한 개념입니다. 이번 글에서는 대리자의 형변환과 람다 표현식을 활용하여 다양한 방식으로 사용할 수 있는 방법을 정리해보겠습니다. 대리자의 형변환Action 대리자는 반환값이 없으므로, 람다 형식으로 Console.WriteLine()을 호출할 수 있습니다. 그러나 형변환을 적용하려면 적절한 괄호 사용이 필요합니다.((Action)(() => Console.WriteLine("Hello")))(); 위 코드는 괄호가 너무 많아 하나씩 쪼개서 살펴보겠습니다.  WriteLine() 으로 출력하는 부분입니다.() => Console.WriteLine("Hello") 는 람다 표현식을 사용하여 Console.WriteLine()을 호출하는 함수입니다.. 2025. 3. 8.
=> (람다 연산자) 이해하기 C++을 사용하던 개발자라면 C#의 => 연산자를 처음 접했을 때 낯설고 혼란스러울 수 있습니다. 하지만 C#에서는 이 연산자가 매우 다양한 곳에서 사용되며, 코드의 가독성과 간결함을 높이는 데 중요한 역할을 합니다. 이 글에서는 => 연산자가 사용되는 대표적인 형태와 그 의미를 쉽게 설명합니다.  다양한 위치에서 사용되는 => 연산자=> 연산자는 람다 표현식이나 대리자 선언 등에서 자주 사용됩니다.Func square = x => x * x;Action greet = () => Console.WriteLine("Hello!");첫 번째 줄은 x라는 입력값을 받아 x * x를 반환하는 람다 함수입니다. 두 번째 줄은 인자 없이 "Hello!"를 출력하는 동작을 정의한 Action입니다.  기존 코드와의 .. 2025. 3. 8.