묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
외부 네트워크에서 접속에 대한 질문이 있습니다 !
안녕하세요 RooKiss님 항상 좋은 강의 올려주셔서 감사합니다..! 외부 네트워크 환경의 제 친구에게 언리얼 클라이언트를 보내준 뒤, 강의를 들으며 쌓아 올린 제 서버에 연결을 하려고 했는데, 서버 소스의 IP 주소 입력란에 127.0.0.1이 아니라 제 외부(공인)IP 주소를 입력하니 예외를 던지면서 서버 프로그램이 죽더라구요.. 제 소스 문제인가 싶어서 선생님께서 올려주신 서버 소스에도 제 외부 IP 주소를 입력해봤는데, 여기서도 예외를 던지며 프로그램이 죽었습니다. 혹시나 싶어 사설 IP주소를 입력했을 때는 서버프로그램이 죽진 않았지만, 클라 쪽에서 접속할 수 없었습니다. 포트포워딩도 해놓았습니다. 서버 소스에 문제가 있는 건가요? 아니면 외부 네트워크에서 클라이언트를 접속 받는 방법에 대해 제가 잘못 이해하고 있는 걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
6강 마지막 내용 부분 크래쉬 오류
rtbaseucrtbaseucrtbaseucrtbaseUnrealEditor_CoreUnrealEditor_ObjectReflection!DispatchCheckVerify<void,<lambda_cf21b4e29d6226a2d775ca19e16af934>,FLogCategoryLogTemp,wchar_t [16]>() [C:\Program Files\Epic Games\UE_5.1\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:171]UnrealEditor_ObjectReflection!UStudent::DoLesson() [C:\UnrealProject\ObjectReflection\Source\ObjectReflection\Student.cpp:18]UnrealEditor_ObjectReflection!UMyGameInstance::Init() [C:\UnrealProject\ObjectReflection\Source\ObjectReflection\MyGameInstance.cpp:56]UnrealEditor_EngineUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorkernel32ntdll6강 보면서 하는데 선생님하신것처럼 Student->DoLesson();이후부터 저 코드를 주석을 처리하든 말든 무조건 실행시 언리얼엔진이 크래쉬를 일으킵니다 내용 대로 Student 클래스랑 init도 다시 확인했는데 정상이고요 따로 문제가 있을까요? #include "MyGameInstance.h" #include "Student.h" #include "Teacher.h" UMyGameInstance::UMyGameInstance() { SchoolName = TEXT("School"); } void UMyGameInstance::Init() { Super::Init(); UE_LOG(LogTemp, Log , TEXT("==============================")); UClass* ClassRuntime = GetClass(); UClass* ClassCompile = UMyGameInstance::StaticClass(); check(ClassRuntime==ClassCompile); UE_LOG(LogTemp,Log,TEXT("School Class Name : %s"), *ClassRuntime->GetName()); SchoolName = TEXT("Normal School"); UE_LOG(LogTemp,Log,TEXT("School Name : %s"), *SchoolName); UE_LOG(LogTemp,Log,TEXT("School Name Nomal : %s"),*GetClass()->GetDefaultObject<UMyGameInstance>()->SchoolName) UE_LOG(LogTemp, Log , TEXT("==============================")); UStudent* Student = NewObject<UStudent>(); UTeacher* Teacher = NewObject<UTeacher>(); Student->SetName(TEXT("Student 1")); UE_LOG(LogTemp, Log , TEXT("New Student Name %s"),*Student->GetName()); FString CurrentTeacherName; FString NewTeacherName(TEXT("QWER")); FProperty* NameProp = UTeacher::StaticClass()->FindPropertyByName(TEXT("Name")); if (NameProp) { NameProp->GetValue_InContainer(Teacher,&CurrentTeacherName); UE_LOG(LogTemp,Log , TEXT("Current Teacher Name %s "),*CurrentTeacherName); NameProp->SetValue_InContainer(Teacher , &NewTeacherName); UE_LOG(LogTemp,Log , TEXT("New Teacher Name %s "),*Teacher->GetName()); } UE_LOG(LogTemp, Log , TEXT("==============================")); Student->DoLesson(); UFunction* DoLessonFunnc = Teacher->GetClass()->FindFunctionByName(TEXT("DoLesson")); if (DoLessonFunnc) { Teacher->ProcessEvent(DoLessonFunnc,nullptr); } }
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
14강 게임플로우 다듬기 정리 이후 타임라인
안녕하세요제목 내용처럼 약 37분 쯤부터 화면 까만 상태로 48분까지 있던데 이거 정리에서 마무리 인사 하신게 끝난게 맞는거죠?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
서버에만 호출된다는것과 소유한 서버에서 호출된다는 의미
"서버에만" 과 "소유한 서버" 에서 호출된다는 차이가 정확히 무엇인지 알 수 있을 까요?
-
미해결언리얼 엔진 5 스파르타 클래스 - 실전편
0:33 에서 캐릭터 방향을 바꿨을 때
카메라 화면 방향이 바뀌지 않은 이유는 a,d 키가 아니라 방향키로 캐릭터를 제어해서 그런거죠? a,d 키 누르면 카메라 화면이 90도 바껴서요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
불리언 선언
14:00 부분에서 uint32 크기로 불리언을 선언하셨는데 uint8로 선언하는 것과 차이점이 무엇인가요? uint8로 수정하여 실행해도 기능은 동일하게 작동되는 것을 보고 궁금증이 생겨 질문드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
인터페이스를 언제 써야할지 아직 감이 안잡히는데
안녕하세요 지금 언리얼 인터페이스를 활용해서 몇몇 데이터를 가져오는 식으로 강의를 작성해주셨는데 제생각에는 이런방식이디자인 패턴중에 있을 것 같은데 어떤 디자인패턴을 사용한건지 알려주실수 있나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
몽타주 슬롯에서 모션을 지우고 다시 추가하는 이유가 궁금합니다.
34:07 부분에서 교수님께서 슬롯을 DeadSlot으로 변경하신 후에 모션을 지우고, 다시 추가하시는데이렇게 하시는 이유가 궁금합니다! DefaultSlot에서 Dead 모션을 지우고 DeadSlot에 Dead 모션을 추가하는 과정인 건가요?그럼 슬롯을 바꿔도 모션이 그대로 있는 이유는 무엇인가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
소스코드에 관하여 질문드립니다.
안녕하세요. Part1을 완강하고 Part2를 수강하고 있는 비전공자 수강생입니다. 강의를 하실 때 13:45 처럼 함수 복붙 후 함수에 관해 설명해주시는 순서로 진행이 되는데 예를 들어 제가 캐릭터의 속도를 설정하는 함수를 찾고 싶다면 F12를 사용하여 관련 클래스의 코드를 탐색하는게 빠르고 정석적인 방법인가요? 언리얼 공식 문서로는 찾지 못하여 질문드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 랜덤박스 문제
코드는 강의자료를 통해서 작성하였는데 랜덤박스에 weapon이 들어가있는 것을 확인하려고 하는데 이상하게 weapon이 item으로 생성이 되지않습니다. 단순 운 문제인가 진행해보아도 scroll과 potion만 아이템 박스에 담깁니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
컴파일 관련 질문드립니다
안녕하세요. 언리얼엔진 초보입니다.1강 컴파일규칙에서 헤더파일이 변경되면 에디터를 끄고 vs에서 컴파일 하라고 되어있는데요 그 이후 강의에서는 가끔씩 그냥 라이브코딩으로 컴파일 하시던데 정확히 어떤 경우에 에디터를 끄고 컴파일 해야하는지 헷갈립니다. 혹시 헤더파일이 변경되어도 그냥 라이브코딩으로 컴파일하는 예외 경우가 있나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Collision 관련 감지 문제에 대한 질문입니다
void AABCharacterBase::NotifyHitCheck() { //const float AttackRange = CharacterStatComponent->GetTotalStat().AttackRange; const float AttackRange = 1000.f; const float AttackRadius = 50.f; const float AttackDamage = CharacterStatComponent->GetTotalStat().AttackDamage; const FVector Start = GetActorLocation() + GetActorForwardVector() * GetCapsuleComponent()->GetScaledCapsuleRadius(); const FVector End = Start + GetActorForwardVector() * AttackRange; FCollisionQueryParams Params(SCENE_QUERY_STAT(Attack), true, this); TArray<FHitResult> HitResults; bool bHitResult = GetWorld()->SweepMultiByChannel(HitResults, Start, End, FQuat::Identity, ECollisionChannel::ECC_GameTraceChannel1, FCollisionShape::MakeCapsule(AttackRadius, AttackRange * 0.5f), Params); //bool bHitResult = GetWorld()->SweepMultiByObjectType(HitResults, Start, End, FQuat::Identity, FCollisionObjectQueryParams::AllDynamicObjects, FCollisionShape::MakeCapsule(AttackRadius, AttackRange * 0.5f), Params); //bool bHitResult = GetWorld()->SweepMultiByProfile(HitResults, Start, End, FQuat::Identity, TEXT("ABCapsule"), FCollisionShape::MakeCapsule(AttackRadius, AttackRange * 0.5f), Params); if (bHitResult) { for (const auto& HitResult : HitResults) { FDamageEvent DamageEvent; HitResult.GetActor()->TakeDamage(AttackDamage, DamageEvent, GetController(), this); } } #if ENABLE_DRAW_DEBUG FVector CapsuleOrigin = Start + (End - Start) * 0.5f; float CapsuleHalfHeight = AttackRange * 0.5f; DrawDebugLine(GetWorld(), Start, End, FColor::Purple, false, 2.f); FColor Color = FColor::Red; if (bHitResult) { if (HitResults.Num() > 2) { Color = FColor::Cyan; } else if (HitResults.Num() > 1) { Color = FColor::Magenta; } else if (HitResults.Num() > 0) { Color = FColor::Green; } } DrawDebugCapsule(GetWorld(), CapsuleOrigin, CapsuleHalfHeight, AttackRadius, FRotationMatrix::MakeFromZ(GetActorForwardVector()).ToQuat(), Color, false, 1.f); #endif } Collision 을 채널 또는 프로파일로 할 경우 아래와 같이 가장 가까운 물체만 충돌감지를 합니다. (초록색의 경우 1개만 감지했을때)Collision 을 오브젝트 타입으로 할 경우 위와 같은 문제가 발생하지 않습니다. (청록색의 경우 3개 이상 감지 했을때)왜 이러나 디버깅을 해보려 하였는데 내부 구현이 전부 템플릿으로 되어있어 디버깅이 어렵더라고요... 하여 혹시나 위의 문제가 왜 발생하는건지 아시는지 궁금하여 질문드려봅니다.확인차 강의에서 제공되는 샘플코드에서도 테스트를 해봤는데 위와 같은 문제가 똑같이 발생하네요. Sweep 이 아닌 LineTrace 일때도 결과는 똑같았습니다.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
유니티 MMORPG
유니티는 2D 게임 만들기에 좋다고는 하나 C++이 아닌 C#이기 때문에 데이터 계산하는데 느리지 않나요? 리니지처럼 수백명이 동시에 PK를 해도 문제가 없는 엔진인가요?아니면 서버만 C++로 만들면 되는 건가요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
TCHAR 부분 빌드 오류 인데 모르겠습니다.
TCHAR로 로그에 Hello Unreal 찍는 3강 내용인데 언리얼엔진도 5.1로 바꿔보았는데도 선생님이랑 코드 똑같이 치고 비주얼스튜디오에서 빌드하면 에러 나오고 언리얼 출력로그에도 당연히 출력이 안됩니다. 무엇이 문제인지 모르겠어요
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
오류질문
LoginId:ec562db7476f7bdf4937b6a64bee3512EpicAccountId:91a6d7e499ba484bb30b7d42f941c5baUnhandled Exception: EXCEPTION_INT_DIVIDE_BY_ZEROUnrealEditor_ArenaBattle!AABCharacterPlayer::UpdateMeshFromPlayerState() [C:\Users\gwp\Documents\Unreal Projects\UE5_Part3\UnrealProgrammingPart3\Source\ArenaBattle\Character\ABCharacterPlayer.cpp:559]UnrealEditor_Engine!APlayerController::OnPossess() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\PlayerController.cpp:835]UnrealEditor_ArenaBattle!AABPlayerController::OnPossess() [C:\Users\gwp\Documents\Unreal Projects\UE5_Part3\UnrealProgrammingPart3\Source\ArenaBattle\Player\ABPlayerController.cpp:67]UnrealEditor_Engine!AController::Possess() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Controller.cpp:333]UnrealEditor_Engine!AGameModeBase::FinishRestartPlayer() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameModeBase.cpp:1343]UnrealEditor_Engine!AGameModeBase::RestartPlayerAtPlayerStart() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameModeBase.cpp:1287]UnrealEditor_Engine!AGameModeBase::RestartPlayer() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameModeBase.cpp:1238]UnrealEditor_Engine!AGameMode::HandleMatchHasStarted() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameMode.cpp:208]UnrealEditor_Engine!AGameMode::SetMatchState() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameMode.cpp:341]UnrealEditor_Engine!AGameMode::StartMatch() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameMode.cpp:201]UnrealEditor_ArenaBattle!AABGameMode::StartPlay() [C:\Users\gwp\Documents\Unreal Projects\UE5_Part3\UnrealProgrammingPart3\Source\ArenaBattle\Game\ABGameMode.cpp:114]UnrealEditor_Engine!UWorld::BeginPlay() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\World.cpp:4882]UnrealEditor_Engine!UGameInstance::StartPlayInEditorGameInstance() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\GameInstance.cpp:547]UnrealEditor_UnrealEd!UEditorEngine::CreateInnerProcessPIEGameInstance() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:3210]UnrealEditor_UnrealEd!UEditorEngine::OnLoginPIEComplete_Deferred() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1673]UnrealEditor_UnrealEd!UEditorEngine::CreateNewPlayInEditorInstance() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1936]UnrealEditor_UnrealEd!UEditorEngine::StartPlayInEditorSession() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:2941]UnrealEditor_UnrealEd!UEditorEngine::StartQueuedPlaySessionRequestImpl() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1250]UnrealEditor_UnrealEd!UEditorEngine::StartQueuedPlaySessionRequest() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:1153]UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1777]UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:517]UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5369]UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:202]UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:107]UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:244]UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]kernel32ntdll 이 부분에서의 코드가 정상적으로 되어있는거 같은데 이러한 오류가 계속 생겨나고 있습니다
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnComponentBeginOverlap 바인드
// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "ABCharacterNPC.generated.h" UCLASS() class INFINITEABYSS_API AABCharacterNPC : public ACharacter { GENERATED_BODY() public: AABCharacterNPC(); protected: UPROPERTY(VisibleAnywhere, Category = NPC, Meta = (AllowPrivateAccess = "true")) TObjectPtr<class UStaticMeshComponent> NPC; UPROPERTY(VisibleAnywhere, Category = NPC, Meta = (AllowPrivateAccess = "true")) TObjectPtr<class UBoxComponent> NPCTrigger; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Collision") bool bIsOverlapping; UFUNCTION() void OnBoxTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepHitResult); };헤더 파일에 이렇게 선언 한 다음// Fill out your copyright notice in the Description page of Project Settings. #include "NPC/ABCharacterNPC.h" #include "Components/BoxComponent.h" #include "Components/CapsuleComponent.h" #include "Components/PrimitiveComponent.h" #include "Physics/ABCollision.h" // Sets default values AABCharacterNPC::AABCharacterNPC() { bUseControllerRotationPitch = false; bUseControllerRotationYaw = false; bUseControllerRotationRoll = false; GetCapsuleComponent()->InitCapsuleSize(42.0f, 96.0f); GetCapsuleComponent()->SetCollisionProfileName(TEXT("NPC")); GetMesh()->SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, -95.0f), FRotator(0.0f, 0.0f, 0.0f)); GetMesh()->SetAnimationMode(EAnimationMode::AnimationBlueprint); GetMesh()->SetCollisionProfileName(TEXT("NPCMesh")); static ConstructorHelpers::FObjectFinder<USkeletalMesh> NPCMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/ExternAssets/MedievalGirl/Mesh/SK_MedievalGirl.SK_MedievalGirl'")); if (NPCMeshRef.Object) { GetMesh()->SetSkeletalMesh(NPCMeshRef.Object); } static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("Game/ExternAssets/MedievalGirl/Demo/Animations/ThirdPerson_AnimBP.ThirdPerson_AnimBP_C")); if (AnimInstanceClassRef.Class) { GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class); } NPCTrigger = CreateDefaultSubobject<UBoxComponent>(TEXT("NPCTrigger")); NPCTrigger->SetBoxExtent(FVector(100.0f, 100.0f, 100.0f)); NPCTrigger->SetRelativeLocation(FVector(0.0f, 0.0f, 50.0f)); NPCTrigger->SetupAttachment(GetMesh()); NPCTrigger->SetCollisionProfileName(CPROFILE_ABTRIGGER); NPCTrigger->OnComponentBeginOverlap.AddDynamic(this, &AABCharacterNPC::OnBoxTriggerBeginOverlap); UE_LOG(LogTemp, Log, TEXT("NPC Trigger event binding: %s"), NPCTrigger->OnComponentBeginOverlap.IsBound() ? TEXT("Success") : TEXT("Failed")); bIsOverlapping = false; } void AABCharacterNPC::OnBoxTriggerBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepHitResult) { UE_LOG(LogTemp, Log, TEXT("%s"), *OtherActor->GetName()); bIsOverlapping = true; }Cpp 파일에 OnBoxTriggerBeginOverlap를 바인드 해서 사용할려는데 로그로 바인드는 되었다고 뜨는데 함수안에 있는 로그는 왜 안찍히는 건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
게임 싱글톤 클래스
그렇다면 게임 싱글톤 클래스는 클래스들에서 자주 참조할, 자주 사용할 데이터들을 모아놓는 클래스인 것이고, 위치는 데이터 레이어에 위치 하는 것이 일반적인 건가요?
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
해결방법...
이 문제는 언리얼의 문제도 오큘러스와 피코에 문제도 아닌 스팀vr 에 문제였네요... 설정으로 들어가셔서 보시면저 부분이 특정회사 즉 오큘러스 or pico 로 되어있을겁니다.그걸 그림과 같이 스팀vr로 리셋을 해주시면 다 해결 됩니다언리얼 모든 버전에서 다 되네요 이걸 모르셨다는게 의문이긴 한데.... 해결이 되었으니 강사님이 저에게 커피라도 쏘시죠 ㅎㅎㅎㅎㅎ
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
조이스틱 문제점....관해서 한마디를 해 봅니다... 강사님
강의 첫시간부터 안되는데... 강의를 끝까지 따라할수가 없습니다.. 문제점의 해결 방안을 마련해주셨으면 좋겠습니다... 보니까 저 문제가 하루 이틀도 아닌거 같은데.. 이대로 방치하셔서는 안될거 같은데요 강사님 왜 pico sdk에는 5.1 버전은 없는지 궁금합니다.. 언리얼에서 되는 유일한 버전인데 말이죠
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
Proto buf 관련 질문
강의 영상을 보면서 다른 프로젝트에 Proto buf를 적용하고 있습니다. 하지만 이를 연동하는 과정에서 서버에서 수정한 정보가 클라이언트로 넘어가지 않아 확인해보니 ServerPacketHandler.h의 내용 중 아래 내용에서 S1.h를 제가 만든 프로젝트의 이름으로 변경해도 계속 S1으로 바뀌는 것을 발견하였습니다. 서버 쪽에서 S1과 관련된 모든 것을 제 프로젝트의 이름으로 변경하였는데 바꾸어야 할 이외의 것이 있을지 궁금합니다.