묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
리소스 매니저 강의 18분 부근
ResourceManager::Clear() 에 해당하는 부분에 대해 질문이 있습니다.ResourceManager이 싱글톤으로 만들어지고, Game의 소멸자에서 또 ResourceManager의 Clear을 호출함으로써, Clear을 총 두번 호출하게 됩니다.이 때, ResourceManager::Clear 내부에 unordered_map에서 메모리 해제를 하기 위해 SAFE_DELETE을 사용하고 있는데, for문이 auto mesh로 값복사를 하여 호출하는데, 이러면 힙 메모리는 delete시켰지만, map에서 관리되고 있는 포인터는 아직 해당 주소를 가리키고있어 두번째 Clear에서 또 값을 복사해오고 주소값자체는 복사해오므로 if(ptr)도 통과한 상태로 delete을 다시한번 시도하여 오류를 내는것으로 보입니다.근데 궁금한건, 왜 Game의 소멸자로 싱글톤의 Clear을 호출하는 것인지, 각 매니저의 생명주기를 RAII로 관리하게 하면 이런 이중 삭제를 고려안해도 되지 않나요?또한, for문으로 참조로 SAFE_DELETE를 한다면, Clear두번 호출되어도 이중 삭제 방지되지만, 왜 map의 clear로 해당 상황을 방지하는 선택을 하셨는지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
9강 44:59 부분에서 질문이 있습니다.
현재 버전(5.6)에서 modifier op 는 Add가 아니라 Add(Base) 로 기재되어 있는데, 그럼에도 불구하고 강의의 내용과 똑같이 Current Value만을 변경합니다. 그렇다면 현재 버전의 Add(Base) 에서 Base 는 무슨 의미일까요...? 설명이 잘못된건가요? 마치 Base 에 Add를 하는 것 같아서 오히려 혼동을 불러일으키는 느낌인데
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
헤더 파일 추가에 대해서 질문있습니다
11강에서 ABAIContoller.cpp를 작성할때 UBehaviorTreeComponent에 대해서 다룰때 UBehaviorTreeComponent에 대해서 헤더 파일 선언을 안해줬는데 사용가능한 이유가 궁금합니다
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
평지 제작과 랜드스케이프를 이용한 지형 제작
안녕하세요 강사님 픽셀브릿지 부분에서ground에 서 검색되는 모든 항목들이 구독해야 사용 가능하다고 나오는데 무료로는 이제 불가능한건가요? 모든 항목이 이렇게 나와요
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
8강 24:22 CurrentAttributeSet 질문입니다.
정석적으로 코드를 변경하기 전에 에디터를 실행하려 하면 ensure(CurrentAttributeSet); 부분에서 에러가 발생하는데, 해당 시점에 CurrentAttributeSet 이 null 이라 에러가 발생하는 것이라면, 이를 피하기 위해 정석적으로 변경 한 후에 똑같은 시점에서 if문을 통과하는 방식으로 바꾼것 까진 이해했습니다.1. 근데 에디터 실행 시점에는 해당 CurrentAttriabuteSet 이 null 이었다가, 게임 시작 시점에는 값이 채워지는데 이유가 무엇인가요?게임 시작시점에는 문제 없으나 에디터를 실행할때 ensure 구문으로 인해 위와 같은 불필요한 크래쉬가 발생한다면, 그냥 ensure을 안쓰고 if문으로 처리하는게 일반적인가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[Service강의] owner -> shared_ptr
아직 다음 강의를 안들어서 잘 예측이 안되지만, owner에 보통 이벤트를 발생시킨 Session의 shared_from_this()를 넣어줄 것으로 예상을 해봅니다. 만약 이 상황에서 io작업이 밀려 오래 걸리거나 누락되어 shared_ptr로 물고 있던 session들이 해제 안되는 문제가 생길 수 있지 않나요?그렇기 때문에 weak_ptr로 owner을 관리하고, 다만 session이 만료되어 없어지면 유효하지 않은 이벤트이므로 .lock()을 통해 nullptr로 반환 시 예외 처리해주는게 더 안전하지 않나요?공부를 더 해야겠지만, 사실 아직 잘 이해가 안갑니다. owner와 event등의 수명 주기가 어떤 관계가 있는지 정확히 모르겠지만 방향성을 알려주시면 감사하겠습니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
저장 다하고 껐다키니까 이상해졌어요
맵이 사라지고...왜그런거죠..ㅠㅠ
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
3:00 부분에 Movement Input
저는 이렇게 나오는데 ... 혹시 여기서는 영상처럼 되도록 하는 방법이 없을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
상자에 상호작용으로 아이템을 얻는 경우
안녕하세요. 지금은 상자가 오버랩 판정을 했을 때 들어온 액터가 캐릭터라면 자동으로 아이템을 습득하기 때문에, 아이템에서 인터페이스를 사용해 캐릭터에 접근하고 있는데요. 만약 F 키를 눌러 상호작용으로 상자를 열어 아이템을 습득한다고 가정했을 때는 캐릭터 IA_Interaction과 같은 인풋 액션을 추가해서 함수를 바인드하고, 그 함수에서 아이템으로 접근하면 될까요?
-
해결됨[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)
해킹 방어 강의 질문
안녕하세요. 루키스님 강의 잘 듣고 있습니다.해킹 방어 강의 관련하여 2가지 질문드립니다.State 데이터 Set을 클라 측에서 하고 있고 서버에서는 클라 측 데이터를 기반으로 체크를 하는 것으로 보입니다. 서버 측에서 State 데이터 Set을 해야 더 안전한 것이 아닌지 질문드립니다.노티파이 부분도 클라 측에서 확인을 하고 있는데 서버 측에서는 애니메이션 실행은 하지 않지만 실행 중인지 시간을 통해 체크 후 각 노티파이 등을 Multicast 하는 방식이 더 안전한 것이 아닌지 궁금합니다. 아니면 언리얼 프레임워크에서 해당 부분은 자동으로 해주는 부분일까요?항상 강의 잘 듣고 있습니다. 감사합니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
돌 장애물과 코인 아이템 충돌 차이
안녕하세요. 8. Endless Runner - 죽음 및 부활 에서는 SM_Rock의 Auto Convex Collision을 켜줘야 충돌이 적용이 됐었는데 코인 아이템의 경우 그런 작업을 해주지 않아도 바로 충돌이 되는 이유가 무엇인가요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
[인티저 켜기] 항목을 찾을 수 없습니다.
[9강. 아이템 추가]의 6:56에서 "인티저 켜기" 항목이 없고 검색 시Utilities > Flow Control > Switch에Switch on ENiagara_IntegerConversionSwitch on EFieldIntegerType이렇게 2가지만 검색됩니다. 각각 추가 시 다음과 같이 되어 있는데 강의의 내용과 동일하게 인티저 켜기를 등록하려면 추가로 진행해야 하는 항목이 있을까요? 사용 중인 에디터는 5.5.4 (5.5.4-40574608+++UE5+Release-5.5) 입니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C#에서 생성자 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 유니티와 C#의 부족한 지식을 위해 강의를 듣고있는데 궁금한 점이 생겨 질문합니다.개인 프로젝트를 진행할 때 Init함수 등을 사용해서 오브젝트 풀링한 몬스터들을 Init함수로 전체 데이터를 초기화 해왔었는데, C#에서도 생성자를 사용해서 첫 생성된 오브젝트들의 변하지 않는 데이터(이름, 공격력, 방어력 등)를 생성자로 초기화를 하고, 다시 풀링되는 오브젝트들의 변하는 데이터 (HP, MP 등)은 Init함수를 통해 풀링하는 식으로 만드는것이 좋은 방법인가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
HealHp 함수
기존에 만들어 놓으셨던 SetHp 함수에 Clamp랑 Broadcast 코드가 그대로 있어서 HealHp 함수가 SetHp 함수를 거쳐가면서 기능하게 만들었는데, 괜찮을까요? 같은 연유로 AddBaseStat 함수도 똑같이 적용했습니다!FORCEINLINE void AddBaseStat(const FABCharacterStat& InAddBaseStat) { SetBaseStat(BaseStat + InAddBaseStat); } FORCEINLINE void HealHp(float InHealAmount) { SetHp(GetCurrentHp() + InHealAmount); }
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
ConstructorHelpers::FObjectFinder로 에셋 찾기
ConstructorHelpers::FObjectFinder로 에셋을 찾게 되면 에셋 위치를 나중에 변경할 일이 있을때 Copy Reference 주소 코드를 다 바꿔야 할거 할텐데, 현업에서도 이렇게 쓰이나요? 아니면 따로 관리하는 방법은 없나요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ASC 에서 AttributeSet 함수에 대한 mutable 반환 함수가 없는 이유
안녕하세요. UABGA_AttackHitCheck::OnTraceResultCallback 구현에서 질문 드릴 게 있습니다. UABCharacterAttributeSet* TargetAttribute = const_cast<UABCharacterAttributeSet*>(TargetASC->GetSet<UABCharacterAttributeSet>()); 게임 로직 만들면서 AttributeSet 의 값을 변경해야 할 경우가 많을 것 같은데요. ASC 에서 변경가능한 AttributeSet 의 참조나 mutable 포인터를 반환하는 함수를 구현하지 않은 이유가 있나요?const_cast 로 억지로 const 를 벗겨내는 게 자연스럽게 느껴지진 않아서요. 다른 곳에서 값을 변경하게 코드를 작성해야 하는 디자인 측면이 있는 건지, 경험적인 정책 측면이 있는 건지 궁금해서 질문 드렸습니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
컨트롤릭관련질문
안녕하세요 강사님!강의에서 이해가 되지 않는 부분과 구현 관련해서 2개의 질문이 있습니다.강의에서 이해되지 않는 부분은 강의 14초경 특정 물체를 바라보는데 고개가 뒤집히는 현상이 있잖아요. 그냥 바로 해당 물체의 위치를 건네줬을 때는 고개가 뒤집히는 문제가 발생했고블루프린트 내에 구체를 만들어 해당 구체의 위치를 뽑아서 해당 위치를 바라보게 세팅해서 그 문제를 해결했는데이게 뭔 차이인지를 모르겠습니다. 컨트롤릭에 해당 위치 벡터를 전달할 때 둘 다 월드상에 있는 좌표로 변환되어 전달하므로 똑같은 거 아닌가요?-------------구현 관련 질문입니다. 구현하고자 한 기능은 캐릭터가 조준을 하고 있지 않을 때, 카메라가 바라보는 방향으로 바라보게 만들면서 특정 각도를 넘어간다면 그냥 정면을 바라보게끔 하는 것입니다. 여기서 캐릭터가 스폰된 직후의 정면 벡터에서 왼쪽으로 움직이고 그 방향을 바라본다음 마우스를 돌려 에임오프셋을 조절하는 경우는 정상적으로 잘 작동하는데나머지 다른 방향에서 바라보는 경우에는 얼굴이 뒤집혀서 작동을합니다1. 정상2. 비정상 컨트롤릭에 있는 스켈리톤와 실제 엑터가 바라보는 방향과 같다면 정상적으로 작동하는 것 같다고 추측하고 있습니다. 이런 상황에서 좀 골머리를 앓고 있는데 어떻게 해결해야하는걸까요? 시간을 너무 많이 쓰는것같아 질문드립니다. ㅠ-------구글드라이브 링크https://drive.google.com/file/d/1tZqaSfJt1aqpmpp4Yp2Vl6iMDFvqQ3zR/view?usp=sharing
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
특정 조건에서만 함수를 반환할 때
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 반환 값이 있는 함수를 작성할 때 특정 조건에서만 반환해도 컴파일 단계에서 문제 없이 컴파일 됩니다.빌드를 시켜 실행 시키면 1로 반환 되던데 1로 반환 되는 이유는 뭔가요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
쿼터뷰 캐릭터 회전, 솔더뷰 움직임 문제
쿼터뷰, 솔더뷰 간 전환은 잘되구요.쿼터뷰일 때는 움직이는건 잘되지만 캐릭터가 움직이는 방향으로 회전하지 않고솔더뷰일 때는 움직이지는 못하지만 카메라를 돌리는건 잘되는 상황입니다.올려주신 자료 다운로드 해서 실행을 해봤는데 올려주신 프로젝트는 잘 실행되더라구요.에러가 뜨는 것도 아니라 강의와 올려주신 프로젝트를 여러번 돌려보며 소스코드, 데이터 에셋, 캐릭터 블루프린트의 설정들, 인풋액션, 인풋매핑컨텍스트 모두 비교 확인해봤지만 달라지는 건 없었습니다.언리얼 캐시 제거 후 다시 실행도 해봤지만 그대로 인데 도대체 뭐가 문제일까요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
충돌체 관련질문
안녕하세요 강사님!충돌체관련 궁금한점이 있어서 질문합니다.캐릭터 클래스와 무기 클래스가 있고, 무기 클래스에 OnComponentBeginOverlap 옵션을 활성화 시켰습니다. 이런 상황에서 무기 클래스의 콜리전을 활성화 했을 때, 캐릭터 클래스와 겹치는 상황이 발생했습니다.이때 무기 클래스에 캐싱되어 있는 캐릭터 클래스가 있어서 그 캐릭터 클래스와 충돌한 캐릭터가 같은지를 판단하여 return 하는 식으로 처리 했는데 이게 좀 마음에 안들어요.애초에 특정 엑터를 충돌하지 못하게 지정해주고 싶은데 관련기능이 있을까요? 뭔가 있을꺼 같은데 찾기 힘드네요..