Unreal 개발 본 캠프 56일차

HappyCircle·2026년 2월 20일

Unreal 개발

목록 보기
73/163

📘 TIL – 코딩테스트: 괄호 회전하기, 게임: 몬스터 스폰 실제 레벨 적용 및 애니메이션 버그 수정


🧠 1️⃣ 코딩테스트 – 괄호 회전하기

📌 문제 요약

  • 문자열 s를 왼쪽으로 00 ~ n1n-1번 회전시킨 결과 중, 올바른 괄호 문자열이 되는 경우의 수를 구하는 문제.

🎯 핵심 포인트

이 문제는 '회전 문자열 생성''괄호 유효성 검사' 두 가지 로직을 얼마나 깔끔하게 분리하느냐가 핵심입니다.

1.1 회전 문자열 생성 방식

  • 방식: s.substr(i) + s.substr(0, i)를 이용해 매 회전마다 새로운 문자열 생성.
  • 인사이트: 문자열을 2배 확장(s + s)한 뒤 nn길이만큼 슬라이딩 윈도우 방식으로 접근하면 더 직관적일 수 있음.

1.2 올바른 괄호 판별 (Stack 자료구조)

  • 여는 괄호: 스택에 push.
  • 닫는 괄호: 스택 top과 짝이 맞는지 확인 후 pop. (스택이 비어있거나 짝이 안 맞으면 즉시 탈락)
  • 최종 확인: 모든 순회가 끝난 후 스택이 완전히 비어 있어야 (st.empty()) 유효함.

🔥 핵심 코드 (C++)

bool isValid(const string& s) {
    stack<char> st;
    for (char c : s) {
        if (c == '(' || c == '{' || c == '[') st.push(c);
        else {
            if (st.empty()) return false;
            if (c == ')' && st.top() != '(') return false;
            if (c == '}' && st.top() != '{') return false;
            if (c == ']' && st.top() != '[') return false;
            st.pop();
        }
    }
    return st.empty();
}

🧠 오늘의 인사이트

회전 로직과 검증 로직을 분리하면 디버깅이 쉬워지며, 괄호 검증은 전형적인 스택 패턴의 표준임을 다시 확인.


🎮 2️⃣ 몬스터 스폰 – 실제 게임 레벨 적용 테스트

📌 작업 배경

테스트 맵(Sandbox) 환경을 벗어나 실제 게임 레벨로 시스템을 이식하며, 지형 높낮이, 네비게이션 메시(NavMesh), 액터 간 참조 관계 등 다양한 환경 변수를 검증함.

2.1 실제 레벨 적용 체크리스트

  • 참조 무결성: Spawner가 레벨에 배치된 WarehousePathManager를 정확히 참조하고 있는가?
  • 네비게이션 유효성: 스폰 지점이 NavMeshBoundsVolume 내부에 있으며, 캐릭터가 지형 아래로 박히거나 공중에 뜨지 않는가?
  • 초기화 순서: 레벨 스트리밍이나 BeginPlay 타이밍 차이로 인해 참조가 null이 되는 구간은 없는가?

🧠 오늘의 인사이트

테스트 맵에서 정상이어도 실제 레벨에서는 참조/초기화/네비게이션이 즉각적인 변수로 작용한다. 시스템이 어떤 가정에 의존하고 있는지 레벨 테스트를 통해 드러난다.


🎮 3️⃣ 실제 게임 레벨 반영 후 애니메이션 버그 수정 진행

📌 발생 이슈

실제 레벨 스폰 적용 후, Locomotion(이동 애니메이션)이 재생되지 않거나 공격 몽타주가 특정 상황에서 끊기는 현상 확인.

3.1 점검 및 수정 우선순위

  1. 데이터 주입 확인: AnimSet 데이터 에셋이 Monster -> CombatComponent까지 끊김 없이 전달되는지 로그 확인.
  2. AnimInstance 유효성: GetAnimInstance()null을 반환하는 타이밍이 있는지 검사.
  3. 애니메이션 슬롯(Slot) 점검: 몽타주 재생을 위한 DefaultSlot 설정이 AnimBP 내에서 올바르게 레이어링되어 있는지 확인.

🧠 오늘의 인사이트

데이터 기반 시스템(AnimSet)은 주입 여부를 빠르게 확인할 수 있는 방어 코드(Guard Clause)와 로그 시스템이 필수적이다.


🎯 4️⃣ 오늘의 요약

항목핵심 요약
코딩테스트괄호 회전하기 → Stack 검증 로직의 안정성 확보가 관건
스폰 시스템실제 레벨 통합 테스트를 통한 환경 변수(네비, 충돌) 제어
애니메이션AnimSet 데이터 파이프라인 및 몽타주 슬롯 레이어링 버그 수정 진행
profile
개발합시다!

0개의 댓글