Unity에서 유용한 클래스 이름
·
Unity/Tip
유니티에서 클래스 이름을 작성할 때 유용한 단어와 설명입니다. Controller : 게임 엔티티를 제어하는 클래스로, PlayerController나 EnemyController와 같은 것이 있습니다. Manager : 게임의 여러 측면을 관리하거나 감독하는 클래스로, GameManager나 AudioManager와 같은 것이 있습니다. System : 게임에 특정 시스템을 구현하는 클래스로, InventorySystem이나 DialogueSystem과 같은 것이 있습니다. Data : 데이터를 저장하고 처리하는 클래스로, PlayerData나 GameData와 같은 것이 있습니다. Handler : 특정 작업이나 이벤트를 처리하는 클래스로, InputHandler나 CollisionHandler와 같..
C# Action과 UnityEvent의 차이점
·
Unity
C#을 사용하여 Unity에서 개발할 때 개발자는 이벤트를 처리하는 다양한 방법과 위임 메서드 중에서 선택하는 경우가 많습니다. 일반적으로 사용되는 옵션 중 두 가지는 내장된 C# 대리자 유형인 'Action'과 Unity 고유의 'UnityEvent'입니다. 하지만 정확히 무엇이 그들을 구별하는가? 이번 포스팅에서는 Action과 UnityEvent의 차이점, 장단점을 살펴보겠습니다. C# Action C#의 System 네임스페이스의 일부인 Action은 최대 16개의 입력 매개변수를 사용하지만 값을 반환하지 않는 메서드를 가리킬 수 있는 대리자입니다. 이는 사용자 지정 대리자를 정의하지 않고 메서드를 대리자로 표현하는 수단입니다. 다음은 c# action을 사용한 예시 코드입니다. public cl..
Unity의 컨디셔널 컴플리션(Conditional Compilation)
·
Unity/Tip
Unity의 컨디셔널 컴플리션은 특정 조건에 따라 코드를 컴파일하거나 제외하는 기능입니다. 이를 통해 특정 플랫폼에서만 실행되는 코드를 작성하거나, 디버그 모드에서만 실행되는 코드를 작성할 수 있습니다. 이 기능은 유니티에서 특정 컴파일러 지시문을 사용하여 구현됩니다. 사용 방법 컨디셔널 컴플리션을 사용하려면 다음과 같은 형식의 지시문을 작성합니다. #if // code to be compiled if condition is true #else // code to be compiled if condition is false #endif 여기서 은 특정 조건입니다. 이 조건은 다양한 방법으로 설정될 수 있습니다. 예를 들어, 다음과 같은 조건을 사용하여 특정 플랫폼에서만 실행되는 코드를 작성할 수 있습니다..
Unity Debuging
·
Unity/Tip
Unity에서는 디버깅을 위한 다양한 도구와 클래스를 제공합니다. 이번에는 디버그 클래스에 대해 알아보겠습니다. Debug 클래스 Debug 클래스는 디버깅에 유용한 여러 메서드를 제공합니다. Debug 클래스는 UnityEngine 네임스페이스에 속해 있으므로, 다음과 같이 using 문을 추가하여 사용합니다. using UnityEngine; public class MyClass : MonoBehaviour { private void Start() { Debug.Log("Hello, World!"); } } 위 예제에서는 Start 메서드에서 Debug.Log 메서드를 호출하여 "Hello, World!"를 출력합니다. Log 메서드 Log 메서드는 디버깅을 위한 가장 일반적인 메서드입니다. Log ..
C#의 #region 지시어
·
C#
C#에서 #region 지시어는 코드를 논리적인 구획으로 나누어서 표시할 때 사용됩니다. #region 지시어를 사용하면 코드의 가독성을 높이고, 특정 영역을 쉽게 찾아볼 수 있습니다. #region 지시어의 사용법 #region 지시어는 다음과 같은 형태로 사용됩니다. #region 이름 코드 #endregion 위의 코드에서 이름은 #region 블록의 이름을 나타냅니다. 코드는 #region 블록에 속하는 코드입니다. #region 블록은 중첩될 수 있으며, #endregion 지시어는 생략 가능합니다. #region 지시어의 예 다음은 #region 지시어를 사용한 예시입니다. using System; namespace ConsoleApp { class Program { static void Ma..
객체지향의 5대 원칙 SOLID : Dependency Inversion Principle
·
C#
DIP(Dependency Inversion Principle) - 의존성 역전 원칙 DIP는 객체지향의 5대 원칙 중 하나로, 고수준 모듈은 저수준 모듈에 의존해서는 안 된다는 것을 의미합니다. 이것은 추상화를 이용하여 모듈 간의 의존성을 낮추는 것을 의미합니다. DIP의 예시 DIP를 지키지 않은 코드는 다음과 같습니다. public class Button { private Lamp lamp = new Lamp(); public void OnPressed() { lamp.TurnOn(); } } public class Lamp { public void TurnOn() { // ... } } 위의 예제에서는 Button 클래스가 Lamp 클래스에 의존하고 있습니다. 이것은 DIP를 위배하는 코드입니다...
객체지향의 5대 원칙 SOLID : Interface Segregation Principle
·
C#
ISP(Interface Segregation Principle) - 인터페이스 분리 원칙 ISP는 객체지향의 5대 원칙 중 하나로, 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하지 않아야 한다는 것을 의미합니다. 이것은 인터페이스를 작은 단위로 분리하여 인터페이스 간의 의존성을 낮추는 것을 의미합니다. ISP의 예시 다음은 ISP의 예시입니다. interface IAnimal { void Eat(); void Sleep(); void Move(); } class Dog : IAnimal { public void Eat() { /* ... */ } public void Sleep() { /* ... */ } public void Move() { /* ... */ } } class Bird : IA..
객체지향의 5대 원칙 SOLID : Liskov Substitution Principle
·
C#
Liskov Substitution Principle Liskov Substitution Principle은 리스코프 치환 원칙으로, 서브타입은 언제나 자신의 기반 타입으로 교체 가능해야 한다는 원칙입니다. 이것은 상속을 사용할 때 하위 클래스가 상위 클래스의 기능을 대체할 수 있어야 한다는 것을 의미합니다. Liskov Substitution Principle의 예 다음은 Liskov Substitution Principle의 예시입니다. public class Rectangle { public virtual double Width { get; set; } public virtual double Height { get; set; } public double Area() { return Width * H..