본문 바로가기

분류 전체보기45

필드 (Field) 와 속성 (Property) 에 대해서 C# 에서 객체의 데이터를 저장하는 방법으로 필드(Field) 와 속성(Property) 이 있습니다.두 개념은 비슷해 보이지만, 실제로는 중요한 차이점이 있으며, 속성을 사용하는 이유도 분명합니다.이 글에서는 둘 간의 차이 그리고 더 나아가 람다 표현식으로 표현하는 방법까지 알아보도록 하겠습니다. 필드 (Field) 란?필드는 클래스 내부에서 데이터를 저장하는 가장 기본적인 방법입니다. 보통 private 접근 제한자로 선언하여 외부에서 직접 접근할 수 없도록 합니다. 이렇게 하면 객체 내부에서만 값을 조작할 수 있어 보호가 가능하지만, 다른 코드에서 값을 변경하거나 읽으려면 별도의 메서드를 구현해야 합니다.예를 들어, name이라는 필드를 직접 사용하면 외부에서 값을 가져오거나 변경할 수 없습니다. .. 2025. 3. 11.
UIManager를 활용한 효율적인 UI 업데이트 구조 게임을 개발할 때 UI 업데이트를 어떻게 관리할 것인가 하는 문제는 매우 중요합니다.초기에는 UI 요소가 적기 때문에 간단한 싱글톤 UIManager로도 충분하지만, 게임이 점점 커지면서 UI 요소가 늘어나면 유지보수가 어려워질 수 있습니다.이번 글에서는 기본적인 UIManager 방식부터 시작해, UI 요소가 많아질 때의 문제점과 이를 해결하는 이벤트 기반 UI 업데이트 방식까지 차근차근 살펴보겠습니다.  UIManager 를 활용한 기본적인 UI  관리 방식일반적으로 UI를 업데이트할 때, FindObjectOfType() 을 사용해서 UI 요소를 찾거나, 싱글톤 UIManager를 활용하는 방식이 많이 사용됩니다. 여기서는 싱글톤 UIManager를 활용하는 기본적인 예제를 먼저 살펴보겠습니다. u.. 2025. 3. 11.
event Action 을 활용한 이벤트 처리 게임을 만들다 보면 특정 상황에서 여러 객체가 동시에 반응해야 할 때가 많습니다. 예를 들어, 플레이어가 사망하면 게임 오버 화면이 표시되고, 점수가 저장되며, 배경음악이 멈추는 상황이 있을 수 있습니다. 이를 효율적으로 관리하기 위해 event와 Action을 활용한 이벤트 시스템을 사용할 수 있습니다.  event Action의 개념어떤 마을에서 "불이야!" 라고 외쳤다고 가정해봅시다.이 소리를 들으면 각자의 역할을 가진 사람들이 자동으로 반응합니다. 소방관은 불을 끄러 출동하고 ... 이웃들은 대피하며 ...방송국은 긴급 속보를 내보냅니다.  즉, 불이 난 사람이 일일이 지시하지 않아도 "불이야!" 라는 신호만 전달하면 관련된 사람들이 각자 반응하는 구조입니다.게임에서도 동일한 개념을 적용할 수 있.. 2025. 3. 11.
Static 과 Instance 그리고 Singleton static 변수와 일반 변수의 차이와 접근 방식을 이해하는 것이 중요합니다. 특히, static 변수는 클래스 단위에서 관리되고, 일반 변수는 객체(인스턴스) 단위에서 관리되므로, 서로의 접근 방식이 다릅니다. 이번 글에서는 static 변수와 일반 변수의 차이를 이해하고, 접근 방식을 정리해보겠습니다. static 변수와 일반 변수의 차이static 변수는 클래스 소속public class Example{ public static int StaticValue = 100; // static 변수} StaticValue는 Example 클래스 자체에 속해 있으며, 객체를 만들지 않고 접근해야 합니다. Example.StaticValue = 200; // 클래스 이름으로 접근 가능 이러한 이유로, 객.. 2025. 3. 11.
Delegate 이해하기 Delegate란?Delegate(대리자)는 C#에서 함수의 참조를 저장하고 호출할 수 있는 객체입니다. 이는 C++의 함수 포인터와 유사하지만, 더 안전한 방식으로 관리됩니다.Delegate를 사용하면 특정 메서드를 미리 지정하지 않고 실행 시점에서 메서드를 동적으로 호출할 수 있습니다. 이를 통해 코드의 유연성과 확장성을 높일 수 있습니다.  Delegate 선언 및 사용Delegate를 선언하는 기본적인 방법은 다음과 같습니다.// Delegate 선언public delegate void MyDelegate(string message);// Delegate를 사용하는 메서드 정의public class Example{ public static void PrintMessage(string mess.. 2025. 3. 10.
FindObjectOfType<T>() 함수 설명 FindObjectOfType() 는 컴포넌트를 찾는 함수라고 알고 있는데, Rigidbody, Transform 같은 컴포넌트뿐만 아니라 UIManager, GameManager 같은 사용자가 정의한 클래스도 들어갈 수 있다는 게 어색하게 느껴질 수 있습니다. 이 의문을 풀기 위해 Unity에서 컴포넌트가 무엇인지, 그리고 왜 FindObjectOfType()가 MonoBehaviour를 상속받은 클래스만 찾을 수 있는지 알아보겠습니다.  MonoBehaviour 는 컴포넌트(Component) 다Unity에서 MonoBehaviour는 단순한 클래스가 아니라, 게임 오브젝트에 부착할 수 있는 컴포넌트입니다. 이는 MonoBehaviour가 내부적으로 Unity의 Component 클래스를 상속받고 있.. 2025. 3. 10.