반응형 유니티 공부/Unity129 Unity - 가비지 컬렉터(Garbage Collector,GC) Unity와 C#의 가비지 컬렉션 (Garbage Collection)1. 가비지 컬렉션(GC)이란?GC(Garbage Collector)는 더 이상 사용되지 않는 메모리를 자동으로 탐지하고 해제하는 시스템이다. 개발자가 수동으로 메모리를 해제하지 않아도 되며 안전하고 편리하게 메모리를 관리할 수 있게 해준다.자동화: 명시적 해제 코드 없이 메모리를 관리한다.안전성: 포인터 오류 및 이중 해제 등의 문제 방지한다.단점:GC가 작동하는 순간에는 다른 작업이 멈추는 정지 시간이 생긴다.메모리 관리를 직접 제어하기 어려워 고성능 튜닝이 힘들다.GC는 주로 힙 메모리에서 작동하며 더 이상 참조되지 않는 참조형 객체를 정리한다.2. GC의 동작 방식: 마크 앤 스윕(Mark and Sweep)마크(Mark): 루.. 2025. 7. 9. Unity - Behavior Designer 무한 루프 문제 해결 방법 behaviour designer를 사용하고 있는데 계속 무한로프가 도는 문제가 발생하였다. 문제 상황Behavior Designer를 사용하던 중, 특정 액션 노드가 계속 초록색(Running) 상태로 유지되면서 트리 전체가 무한 루프에 빠지는 문제가 발생했다. 직관적으로 오류가 없어 보였고 실패나 성공 처리도 없었기 때문에 디버깅이 어려웠다.원인 분석일반적으로 OnUpdate()에서 TaskStatus.Running을 반환하면 노드는 계속 실행 상태를 유지하게 된다.이 자체는 문제는 아니지만 Running을 끝낼 조건이 제대로 만족되지 않으면 루프가 무한히 반복될 수 있다.이번 경우는 Patrol 노드에서 문제가 발생했다.// 예시: 일정 거리만큼 이동if (Vector3.Distance(startP.. 2025. 7. 8. Unity - 행동트리(Behavior Tree) +) Behavior designer 에셋 게임 AI 구현 방식들01 FSM (Finite State Machine) - 상태 기반 적 상태: [대기] → [순찰] → [추적] → [공격] → [도망]장점: 구현이 간단하고 직관적이고 빠르게 프로토타입 제작 가능하다.단점: 상태가 많아질수록 복잡도 급증하고 상태 전환 조건이 얽히기 쉽고 유지보수가 어렵기 때문에 확장성이 부족하다.사용 예: 간단한 적 캐릭터 (좀비, 자동포탑 등), 정해진 패턴을 반복하는 NPC02 If-Else 체인 방식 if (적발견) { if (체력부족) 도망(); else if (거리가가까움) 공격(); else 추적();} else { 순찰();} 장점 : 간단한 조건 분기 구현에 적합하고 적은 코드량으로 빠르게 구현 가능하다.단점 :조건 증가 시 .. 2025. 7. 7. Unity - Animation.Play vs Animation.CrossFade +) 애니메이션 전환 기법들 Animation.Play즉시 전환 (Immediate Switching)현재 프레임에서 기존 애니메이션을 완전히 중단새로운 애니메이션의 첫 번째 프레임부터 시작메모리에서 이전 애니메이션 상태를 바로 제거CPU 오버헤드가 최소화됨 animation.Play("Run"); 장점: 정확한 타이밍 제어, 성능 효율적, 메모리 사용량 적음 단점: 갑작스러운 포즈 변화로 인한 부자연스러운 움직임 Animation.Play() 적합한 상황UI 애니메이션 (버튼 클릭, 메뉴 전환)즉각적인 반응이 필요한 액션 (총 발사, 점프 시작)성능이 중요한 모바일 게임애니메이션 간 연관성이 낮은 경우 Animation.CrossFade 블렌딩 기반 전환 (Blending-based Transition)두 애니메이션을 동시에.. 2025. 7. 2. Unity - Unity에서 도형을 그려보자(패턴 기반이동, 스킬범위 시각화 ) 도형이 왜 필요할까?게임플레이 측면시각적 피드백: 플레이어가 게임 상황을 직관적으로 파악할 수 있다.스킬 범위 표시: 공격/힐링 범위를 명확하게 보여줄 수 있다.이동 경로 가이드: 적이나 NPC의 움직임 경로를 도형 기반으로 계획해 시나리오에 맞는 움직임 구현할 수 있다.디버깅 도구: 공격 판정, 경로 오류 등을 빠르게 눈으로 확인하고 수정 가능하다.개발 효율성재사용 가능한 컴포넌트: 한 번 만들면 여러 곳에서 재활용 가능하다.디자인 유연성: 수치 조정만으로 다양한 패턴 생성할 수 있다.성능 최적화: 필요할 때만 그리기로 리소스 절약할 수 있다.구현 방법01 Gizmos 방식용도: 에디터에서만 보이는 디버깅/개발용장점: 성능 부담 없음, 게임 빌드에 영향 없음단점: 런타임에서 플레이어에게 보이지 않음02.. 2025. 6. 30. Unity - 커스텀 에디터(Custom Editor) +) 전처리기(Preprocessor) 커스텀 에디터(Custom Editor) Unity는 게임 개발뿐 아니라 에디터 자체도 커스터마이징할 수 있는 기능을 제공한다. Inspector 창의 UI를 바꾸거나 새로운 창을 만들어서 툴처럼 쓸 수 있다.이 기능은 대부분 Editor 폴더 안에 스크립트를 넣고 사용한다. 핵심 클래스들 Editor: 기존 컴포넌트의 Inspector 커스터마이징 EditorWindow: 독립적인 에디터 창 생성 GUI/GUILayout: 즉시 모드 GUI 시스템 (레거시) EditorGUI/EditorGUILayout: 에디터 전용 GUI 컨트롤 에디터 편집을 위해 작성한 스크립트들을 저장하는 Editor 폴더가 존재한다. Editor 폴더란? Unity에서 Editor 전용 API를 사용할 수 있도록 만든 .. 2025. 6. 11. 이전 1 2 3 4 ··· 22 다음 반응형