분류 전체보기(17)
-
TIL: AlivePlayer 시스템 심층 분석 (상태 머신, 데이터 관리, 컴포넌트 구조)
1. 개요오늘 작업은 Unity 프로젝트 내 `AlivePlayer` 시스템의 전반적인 구조를 설계하고 구현하는 데 중점을 두었다. 플레이어의 다양한 행동(이동, 전투, 상호작용 등)을 체계적으로 관리하기 위해 계층적 상태 머신(Hierarchical State Machine) 패턴을 도입했으며, 플레이어 데이터 관리, 컴포넌트 통합, 애니메이션 처리 방식을 정의했다. 이 문서는 오늘 구현된 `AlivePlayer` 관련 코드들의 주요 내용과 그 과정에서 얻은 학습 내용을 상세히 기록한다.주요 목표는 다음과 같다:플레이어의 상태(대기, 이동, 달리기, 상호작용, 공격, 피격 등)를 명확하게 분리하고 관리데이터(설정값, 애니메이션 파라미터, 상태 간 공유 데이터)를 효율적으로 구성하고 접근핵심 컴포넌트(`..
2025.04.28 -
캐릭터 개발 TIL (Today I Learned)
개발 환경: Unity 6.0 LTS1. 캐릭터 설계 아키텍처 개요오늘은 멀티플레이어 생존 게임을 위한 캐릭터 시스템을 설계하고 구현했습니다. 전체적인 아키텍처는 상태 패턴(State Pattern)을 중심으로 설계되었으며, 캐릭터의 다양한 행동과 상태를 모듈화하고 확장 가능하게 구현했습니다.주요 클래스 구조는 다음과 같습니다:AlivePlayer: 생존 상태의 플레이어 캐릭터를 표현하는 메인 클래스로, 플레이어의 핵심 속성과 기능을 포함AlivePlayerStateMachine: 플레이어의 다양한 상태를 관리하는 스테이트 머신AlivePlayerState: 모든 플레이어 상태의 기본 클래스ResourceStat: 체력, 배고픔 등 플레이어의 자원을 관리하는 클래스설계 원칙: 단일 책임 원칙(SRP)과 ..
2025.04.25 -
Today I Learned - Unity에서 Google Sheets 사용법 정리
1. Google Sheets를 Unity에서 사용하는 이유Google Sheets는 외부에서 데이터를 관리하고 Unity에서 실시간으로 참조하거나 불러올 수 있는 매우 유용한 툴입니다. 주로 다음과 같은 용도로 사용됩니다:게임 밸런스 데이터 관리 (예: 경험치 테이블, 아이템 정보)실시간 업데이트 가능한 게임 파라미터 설정버전 관리 및 협업 시 유용한 외부 데이터 소스 제공2. 기본 접근 구조Google Sheets는 Google Sheets API 또는 CSV 공개 URL을 통해 접근할 수 있습니다. 두 방식 모두 Unity에서 HTTP 요청을 통해 데이터를 받아 JSON이나 CSV로 파싱할 수 있습니다.3. Google Sheets API 키 발급 및 설정 방법Google Cloud Platform..
2025.04.24 -
Today I Learned - Unity & C# 면접 대비 심화 정리
1. 객체(Object)와 클래스(Class)객체는 현실 세계의 사물이나 개념을 코드로 표현한 실체입니다. 클래스는 이러한 객체를 생성하기 위한 설계도 역할을 합니다. C#에서는 클래스를 정의한 후, new 키워드를 통해 객체를 생성할 수 있습니다.객체는 상태(변수)와 동작(메서드)을 포함하며, 클래스는 그 틀을 제공합니다. 예를 들어 '고양이'라는 클래스를 만들고 '나비', '냐옹이'라는 이름을 가진 객체를 만들 수 있습니다. 두 객체는 같은 클래스를 기반으로 하지만 서로 다른 데이터를 가질 수 있습니다.2. 생성자(Constructor)생성자는 클래스의 인스턴스를 생성할 때 호출되는 특별한 메서드입니다. 생성자는 클래스 이름과 동일하며 반환형이 없습니다. 기본 생성자, 매개변수를 받는 생성자, 정적 ..
2025.04.22 -
UniTask
📘 TIL - Unity 비동기 작업 최적화를 위한 UniTask 학습날짜: 2025년 4월 21일🧭 UniTask란 무엇인가?UniTask는 Cysharp에서 개발한 Unity 전용 경량 비동기 라이브러리다. 기본 .NET의 Task 구조보다 더 가볍고, Garbage-Free에 가까운 환경을 제공하여 Unity에서의 성능 저하를 줄인다.Unity는 기본적으로 async/await를 사용할 수 있으나, System.Threading.Tasks.Task 기반의 구조는 GC 비용이 크고, Unity의 프레임 사이클과 완벽히 어울리지 않기 때문에 UniTask가 도입되었다.🔧 주요 특징Unity 2019.4 이상에서 사용 가능Task보다 훨씬 적은 GC 비용Unity의 YieldInstruction (..
2025.04.21 -
UniRx: 유니티에서의 반응형 프로그래밍
UniRx: 유니티에서의 반응형 프로그래밍 작성일: 2025년 4월 8일 1. UniRx란? UniRx는 이벤트 기반 프로그래밍을 함수형 프로그래밍과 결합하여 비동기 처리와 이벤트 스트림을 보다 쉽게 다룰 수 있게 해준다. UniRx의 핵심 아이디어 이벤트 스트림을 데이터 컬렉션처럼 다룰 수 있습니다. 🔄 비동기 처리 🔗 이벤트 연결 ..
2025.04.08