반응형 분류 전체보기552 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. 백준 C# - 1918 +) 풀이 이 문제를 풀기전에 아래 문제를 먼저 푸는 것을 추천한다.백준 C# - 1935 백준 C# - 1935 +) 풀이풀이후위 표기법으로 계산하는 문제이다.제시받은 문자열안의 문자들을 순서대로 확인하여 연산자인지 피연산자인지 확인한다. 만약 피연산자인 경우 stack에 push하고 연산자인 경우 두번의 Popcode-piggy.tistory.com중위 표기법에서 후위 표기법으로 바꾸는 문제이다.중위 표기법에서 후위표기법으로 바꿀때 연선자 우선순위를 고려해야 한다.01 우선순위 메서드static int Precedence(char c){ switch (c) { case '+': case '-': return 1; case '*': .. 2025. 7. 4. C# - 클래스 상속과 다이아몬드 상속 문제 1. 클래스 상속 방법상속(Inheritance)은 부모 클래스의 기능을 자식 클래스에 물려주는 기능이다. C#에서는 단일 상속만 지원되므로 하나의 클래스만 상속할 수 있다.class Animal { public void Breathe() => Console.WriteLine("Breathing...");}class Dog : Animal { public void Bark() => Console.WriteLine("Bark!");}Dog는 Animal의 모든 public/protected 멤버를 사용할 수 있다.2. 인터페이스 (Interface)인터페이스는 이런 기능들을 반드시 구현해야 한다는 약속이다. 쉽게 이해하자면 메뉴판과 같다. 무엇이 제공될지는 정해졌지만, 실제 요리는 각 레스토랑이.. 2025. 7. 3. 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. 이전 1 2 3 4 5 6 ··· 92 다음 반응형