Humility

아무리 노력해도 최고가 되지 못할 수 있다⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀그럼에도 노력하는자가 가장 겸손한 것 아닌가

공부하는 블로그
반응형

c# 44

[Unity] 유니티 C#) Singleton 패턴

싱글톤 패턴클래스의 인스턴스가 게임 전체에서 단 하나만 존재하도록 보장하는 디자인 패턴 Unity에서 특히 유용한 이유씬(Scene) 전환 시에도 데이터를 유지할 수 있습니다전역적으로 접근 가능한 상태나 기능을 제공합니다게임 매니저, 사운드 매니저 등의 관리자 클래스에 적합합니다 기본 구현 방법public class GameManager : MonoBehaviour{ // 싱글톤 인스턴스 private static GameManager instance; // 공개 프로퍼티 public static GameManager Instance { get { if (instance == null) { ..

[Unity] 유니티 C#) EventBus 패턴

EventBus 패턴개임 내 서로 다른 컴포넌트나 시스템 간의 통신을 관리하는 디자인 패턴 기본 구현 방법기본 이벤트 클래스 정의public class GameEvent{ // 기본 이벤트 클래스 - 필요한 경우 데이터 추가 가능} 실제 사용할 이벤트 클래스 생성public class ScoreChangedEvent : GameEvent{ public int NewScore { get; private set; } public ScoreChangedEvent(int score) { NewScore = score; }} 이벤트 버스 구현public class EventBus : MonoBehaviour{ private static EventBus instance;..

[Unity] 유니티 C#) Command 패턴

커맨드(Command) 패턴 요청을 객체의 형태로 캡슐화하여 매개변수화하고, 요청을 큐에 저장하거나 로그로 기록하고, 작업 취소 등의 기능을 지원하는 디자인 패턴  커맨드 패턴의 핵심 구성 요소 Command (명령 인터페이스) public interface ICommand{ void Execute(); // 실행 메서드 void Undo(); // 실행 취소 메서드} Concrete Command (구체적인 명령) public class JumpCommand : ICommand{ private Player player; // Receiver public JumpCommand(Player player) { this.player = player; } ..

[Unity] 유니티 C#) State 패턴

State 패턴객체의 내부 상태에 따라 동작을 변경할 수 있게 해주는 디자인 패턴 기본 구현 방법상태 인터페이스 정의public interface IState{ void Enter(); // 상태 진입시 호출 void Execute(); // 상태 실행중 호출 void Exit(); // 상태 종료시 호출} 상태를 관리할 매니저 클래스public class StateManager : MonoBehaviour{ private IState currentState; void Start() { // 초기 상태 설정 SetState(new IdleState()); } void Update() { // 현재 상태 실행..

[Unity] 유니티 C#) 제네릭

제네릭 ( Generic )데이터 형식을 일반화하는 프로그래밍 기법코드를 더 유연하고 재사용 가능하게 만들어줌 주요특징타입 안전성 보장 코드 재사용성 향상 성능 최적화 (박싱/언박싱 방지) 컴파일 시점 타입 검사 선언방법제네릭 클래스public class DataContainer{ private T data; public void SetData(T newData) { data = newData; } public T GetData() { return data; }} 제네릭 메서드public T ProcessItem(T item){ return item;} 제네릭 인터페이스public interface IRepository{ ..

유니티/문법 2024.11.29

[Unity] 유니티 C#) 디자인 패턴이란?

디자인 패턴소프트웨어 개발과정에서 자주 발생하는 문제들에 대한 일반적인 해결책건축가들이 사용하는 기본 설계도와 비슷한 개념이다 핵심 구성요소문제 상황 - 패턴이 해결하려는 반복적으로 발생하는 문제해결책 - 그 문제를 해결하기 위한 설계 방법결과 - 해결책을 적용했을 때의 장단점 디자인 패턴의 종류크게 3가지 종류로 분류된다 1. 생성 패턴 (Creational Patterns)객체 생성과 관련된 패턴예: 싱글톤, 팩토리, 빌더, 프로토타입사용 예시: 게임에서 몬스터를 생성할 때 팩토리 패턴 사용 2. 구조 패턴 (Structural Patterns)클래스와 객체를 더 큰 구조로 조합하는 패턴예: 어댑터, 브리지, 컴포지트, 데코레이터사용 예시: 게임 캐릭터의 장비 시스템에 데코레이터 패턴 사용 3. 행위..

[Unity] 유니티 C#) 추상클래스와 가상메서드

추상 클래스 ( Abstract ) 추상클래스는 하나 이상의 추상 메서드를 포함하는 클래스유니티 에서는 abstract 키워드를 사용하여 정의하며, 주로 MonoBehaviour를 상속받아 사용한다 기본 정의와 특징public abstract class BaseCharacter : MonoBehaviour { // 공통으로 사용할 변수들 [SerializeField] protected float health; [SerializeField] protected float moveSpeed; // 일반 메서드 - 모든 자식이 공통으로 사용 protected virtual void Move(Vector3 direction) { transform.Translate(d..

유니티/문법 2024.11.27

[Unity] 유니티 C#) 생성자

생성자 ( Constructor )클래스의 인스턴스가 생성될 때 자동으로 호출되는 특별한 메서드 기본특징생성자의 이름은 반드시 클래스 이름과 동일해야 한다반환 타입을 지정하지 않는다 ( void도 사용하지 않음 )접근 제한자는 보통 public을 사용한다 생성자 유형들의 사용 사례1. 기본 생성자 ( 매개변수 없는 생성자 )public class Player{ // 기본 생성자 public Player() { // 초기화 코드 }}public class Item{ private string itemName; private int durability; public Item() { itemName = "기본 아이템"; durab..

유니티/문법 2024.11.26

[Unity] 유니티 C#) ref 와 out 키워드

ref 키워드ref는 메소드에 변수를 참조로 전달할 때 사용한다. ref 주요 특징양방향 데이터 전달이 가능하다메소드 내에서 값 할당은 선택적이다메소드에서 원본 변수를 직접 수정할 수 있다. ref 예제void Start(){ // ref는 초기값이 반드시 필요하다 int myNumber = 10; Debug.Log($"변경 전: {myNumber}"); // 출력: 10 DoubleNumber(ref myNumber); Debug.Log($"변경 후: {myNumber}"); // 출력: 20}void DoubleNumber(ref int number){ number = number * 2; // 원본 값이 직접 변경된다}TV와 리모컨을 생각하면 조금 더 이해가 ..

유니티/문법 2024.11.25

[Unity] 유니티 C# 인터페이스 ( Interface)

인터페이스구현은 없고 선언만 있다클래스가 반드시 구현해야 할 메서드와 프로퍼티를 정의한 일종의 설계도(청사진) 이다인터페이스 정의public interface IMoveable { // 프로퍼티 선언 float Speed { get; set; } // 메서드 선언 void Move(Vector3 direction); void Stop();}인터페이스 주요 특징1. 인터페이스 이름은 보통 'I'로 시작한다2. 메서드와 프로퍼티만 선언 가능하며, 구현부는 작성할 수 없다3. 다중 상속이 가능하다4. 모든 멤버는 기본적으로 public 이다장점1. 다중상속 가능C#은 클래스 다중 상속이 불가능하지만, 인터페이스는 여러 개 구현이 가능하다 2. 느슨한 결합도구체적인 구현체가 ..

유니티/문법 2024.11.13
반응형