전체 글(52)
-
엑셀 데이터를 한 번에 불러오는 파싱 코드 만들기
프로젝트를 진행하면서 엑셀 데이터를 다루는 일이 종종 있었는데, 처음에는 CSV 파일로 데이터를 처리하다가 문제가 발생했습니다. CSV 파일의 경우 쉼표(,) 때문에 데이터가 꼬이는 문제가 있었고, TSV로 전환하려 해도 결국 데이터가 꼬일 가능성이 높다는 것을 깨달았습니다. 게다가 CSV로 변환하는 과정 자체가 생각보다 손이 많이 가더군요.이런 문제를 해결하기 위해 직접 엑셀 파일을 사용하는 방법을 고민하게 되었고, 깃허브에 있는 unity-excel-importer 프로젝트를 참고했습니다. 해당 프로젝트는 엑셀 파일을 스크립터블 오브젝트로 변환하는 방식으로 진행되는데, 이 방식에 매력을 느껴 비슷한 방법으로 진행하게 되었습니다.실제로 게임 작업을 하다 보면,1차 가공 데이터를 불러와 2차 가공하는 방..
2025.02.22 -
Unity에서 C# 리플렉션 제대로 활용하기! Type, FieldInfo, Activator 완벽 정리
리플렉션은 런타임에 코드 정보를 가져와서 동적으로 조작할 수 있는 강력한 기능인데요, 이를 활용하면 게임 개발에서 다양한 문제를 유연하게 해결할 수 있습니다.리플렉션의 기본 개념과 Unity에서의 활용Type 클래스: 런타임에 타입 정보 얻기, 필드/프로퍼티/메서드 정보 추출FieldInfo 클래스: 필드의 값을 읽고 수정하는 방법Activator 클래스: 동적으로 객체를 생성하는 방법실제 Unity 프로젝트에서의 응용 사례와 주의 사항 리플렉션이란?리플렉션은 런타임에 어셈블리, 타입, 멤버 등의 정보를 조사하고 조작할 수 있는 메커니즘입니다.Unity 개발에서는 다음과 같은 경우에 리플렉션을 활용할 수 있습니다:인스펙터 확장: 에디터 스크립트에서 특정 필드나 속성을 자동으로 표시하거나 조작데이터 매핑:..
2025.02.19 -
Unity에서 KISS 원칙(Keep It Simple, Stupid) 적용하기
KISS 원칙은 "Keep It Simple, Stupid"의 약자로, 복잡성을 최소화하고 가능한 한 단순하게 코드를 작성하라는 설계 철학입니다. 게임 개발에서는 복잡한 기능들이 빠르게 추가되고 변경되기 때문에, 단순하고 명료한 코드가 유지보수와 확장성 측면에서 큰 이점을 제공합니다 KISS 원칙의 개념 및 필요성KISS 원칙은 불필요한 복잡성을 제거하고, 코드가 최대한 단순하게 유지되어야 한다는 원칙입니다. 복잡한 로직, 과도한 추상화, 또는 지나치게 많은 클래스와 인터페이스는 결국 디버깅, 테스트, 유지보수를 어렵게 만듭니다. KISS 원칙을 따르면, "문제가 발생하면 쉽게 이해하고 수정할 수 있는" 코드를 작성할 수 있게 됩니다.예를 들어, 플레이어의 이동 기능을 구현할 때 불필요한 추상화나 복잡..
2025.02.16 -
Unity에서 전략 패턴(Strategy Pattern) 활용하기
게임 개발에서는 캐릭터의 이동, 공격, AI 의사결정 등 다양한 알고리즘과 행동을 상황에 맞게 동적으로 교체할 필요가 있습니다. 전략 패턴은 이러한 요구를 충족시키기 위해, 서로 교체 가능한 알고리즘을 별도의 클래스로 캡슐화하고 클라이언트가 실행 시점에 적절한 전략을 선택하여 사용할 수 있도록 하는 디자인 패턴입니다. 이 방식은 코드의 결합도를 낮추고, 유지보수와 확장이 용이한 구조를 제공합니다. 전략 패턴의 개념전략 패턴은 다음과 같은 세 가지 주요 구성 요소로 이루어집니다.전략 인터페이스 (Strategy Interface):공통적으로 수행해야 할 작업을 정의하는 인터페이스입니다. 예를 들어, 캐릭터의 이동 전략이라면 IMoveStrategy 인터페이스를 정의하여, 이동에 필요한 메서드를 선언합니다..
2025.02.15 -
SOLID 원칙으로 더 나은 Unity 코드 작성하기
소프트웨어 설계에서 SOLID 원칙은 유지보수성과 확장성이 뛰어난 코드를 작성하기 위한 기본 철학입니다. SOLID는 다섯 가지 원칙(단일 책임, 개방-폐쇄, 리스코프 치환, 인터페이스 분리, 의존성 역전)을 의미하며, 각각의 원칙은 객체지향 프로그래밍에서 발생할 수 있는 문제들을 해결하는 데 도움을 줍니다. 1. 단일 책임 원칙 (Single Responsibility Principle, SRP)설명:단일 책임 원칙은 클래스나 모듈이 하나의 책임, 즉 하나의 기능 또는 역할만 수행해야 한다는 원칙입니다. 한 클래스가 여러 기능을 담당하게 되면 한 기능의 변경이 다른 기능에도 영향을 미치게 되어 유지보수가 어려워집니다. 또한, 각 클래스가 독립적인 역할을 수행하면 테스트 작성 및 디버깅이 용이해집니다...
2025.02.15 -
Unity에서 데코레이터 패턴 을 활용한 버프 시스템 구현 (2)
게임 개발에서는 캐릭터의 능력치를 일시적으로 증가시키거나 감소시키는 버프를 동적으로 적용하고, 상황에 따라 해당 버프를 제거하거나 지속 시간을 갱신해야 하는 경우가 많습니다. 데코레이터 패턴은 기존 클래스를 수정하지 않고도 객체에 추가 기능을 부여할 수 있으므로, 버프 시스템을 구현하는 데 매우 적합합니다. 본 글에서는 공격력 증가 및 방어력 증가 버프를 예시로 하여, 데코레이터 패턴을 활용한 버프 시스템의 구현 방법, 특정 버프 제거, 전체 버프 목록 반환, 버프의 턴(또는 지속시간) 관리 및 중첩 효과 적용에 대해 설명합니다.데코레이터 패턴 개요데코레이터 패턴은 기본 기능을 수행하는 객체(예: 기본 공격력, 기본 방어력)를 감싸는 래퍼(데코레이터)를 사용하여 추가적인 기능(버프 효과 등)을 동적으로 ..
2025.02.09