월 26,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UFUNCTION을 붙여주는 이유, 필요한이유?
강의내용에 UFUNCTION에대한 설명은 없는거 같은데.그냥 단순히 함수이름을 검색하기 위해 있는것일까요??
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
영상처럼 뷰포트를 플레이한뒤 마우스를 빠져나오게 하려면 어떻게해야하나요?
(사진)
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
회사에서도 헤더 파일을 수정할 때 엔진을 종료하고 진행하는지 궁금합니다!
안녕하세요. 양질의 강의 정말 잘 듣고 있습니다!언리얼 C++ 과 관련하여 이 강의 만큼 이해하기 좋고, 상세하게 설명해주는 수업이 없다고 생각합니다..!!! 다름이 아니라 '설계의 변경을 위해 헤더 파일을 수정할 땐 엔진을 끈다' 라는 것을 이 강좌에서 처음 알게 되었는데실제로 라이브 서비스 중인 팀에서도 이와 같은 방식으로작업을 하는지 정말 궁금합니다! 유니티 팀의 경우 라이브 서비스 한지 3~4년 쯤 되면 전처리 할 리소스나 플러그인 같은 것도 덕지덕지 붙다보니 엔진을 한 번 껐다 켜는데 10~15분 정도 걸려서 '코드 추가/삭제를 위해 껐다 켠다' 라는 생각이 잘 안 드는데 언리얼 엔진은 프로젝트 폴더 사이즈가 수 십 ~ 백단위 GB 가 넘어가도 껐다 켜면서 작업을 하는데 지장이 없는지 궁금합니다. 물론, 클래스 추가/삭제나 헤더 파일 수정은 빈번하게 일어나는 작업은 아니지만 그럼에도 불구하고 무언가를 수정하는 작업에 있어서 엔진을 껐다 켰다 해야하는 게 꽤나 번거로울 것 같아 보여서요. 😁
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
8강 Getter Setter 에 대한 질문이 있습니다.
안녕하세요 교수님.CPP에 대한 이해가 아직 많이 부족해서 수업을 듣던 중 질문이 생겼습니다. 조금 이상한 질문일 수도 있을것같은데,FString 멤버 변수의 Getter Setter 멤버 함수는FORCEINLINE FString& GetName() { return Name; }FORCEINLINE void SetName(const FString& InName) { Name = InName; }이렇게 인라인 함수 선언과 참조자 반환으로 성능을 중시한 반면, ECardType 열거형 멤버 변수의 Getter Setter의 경우에는ECardType GetCardType() const { return CardType; }void SetCardType(ECardType InCardType) { CardType = InCardType; }이렇게 선언하여 안정성을 추구한 것처럼 보이는데, 이런 설계 이유나 판단 기준이 무엇인가요? 객체의 크기와 특성에 따라 적절한 설계 방법이 조금씩 다르기 때문일까요?
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
11강 내용중 FStruct 안에 GetTypeHash 함수 friend 선언
friend 키워드는 인자가 클래스일때 private , protected 변수에 접근이 자유롭게 가능하다로 알고있는데요 여기서 들어오는 인자는 FStruct 구조체이므로 모든 변수는 public 이기 떄문에 딱히 의미가 없는부분일까요 ?..
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
명칭에 대한 질문이 있습니다.
강의에서 언리얼 오브젝트라고 말하신 것은 UObject를 상속받은 클래스들을 칭한 것인가요?
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
1강. 오류: Expecting to find a type to be declared in a module rules named 'VisualStudioTools' in .
안녕하세요.1강부터 첫 예제부터 오류가 나서 더 이상 진행할 수가 없네요. 너무 초보같은 질문일지 모르겠지만 나름 며칠째 이 문제와 씨름하며 노력해보았지만 해결을 못해 도움을 청하고자 문의드리게되었습니다. 아래 링크처럼 잘 따라 했습니다.https://docs.unrealengine.com/5.3/ko/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/혹시 몰라 아래 UnrealVS 익스텐션도 따라 설치해 보았지만 동일했습니다.https://docs.unrealengine.com/5.3/ko/using-the-unrealvs-extension-for-unreal-engine-cplusplus-projects/위 화면 캡쳐사진은 1,2번만 on 이 기본설정상태인데, 3번을 추가로 켜봤고, 1,2번을 off후 3번만 on도 해보았습니다만 결과는 동일했습니다.Source code는 Visual Studio 가 기본값인데, Visual Studio 2022로 놓아도 결과는 동일했습니다. *환경:Microsoft Visual Studio Community 2022 (64-bit) - Version 17.7.6UE Version: 5.3.1-28051148+++UE5+Release-5.3Platform: Windows 10 (22H2) [10.0.19045.3570] (x86_64) *오류 메시지UE에서 Ctrl Alt F11 했을 때:---------- Creating patch ----------Running D:\Users\Epic Games\UE_5.3\Engine\Build\BatchFiles\Build.bat -Target="UE5CppPart1_01Editor Win64 Development -Project=""D:/Users/userid/Documents/Unreal Projects/UE5CppPart1_01/UE5CppPart1_01.uproject""" -LiveCoding -LiveCodingModules="D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCodingModules.json" -LiveCodingManifest="D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCoding.json" -WaitMutex -LiveCodingLimit=100 Using bundled DotNet SDK version: 6.0.302 Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -Target="UE5CppPart1_01Editor Win64 Development -Project=""D:/Users/userid/Documents/Unreal Projects/UE5CppPart1_01/UE5CppPart1_01.uproject""" -LiveCoding -LiveCodingModules="D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCodingModules.json" -LiveCodingManifest="D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCoding.json" -WaitMutex -LiveCodingLimit=100 Log file: D:\Users\userid\AppData\Local\UnrealBuildTool\Log.txt Creating makefile for UE5CppPart1_01Editor (.uproject file is newer) .... 중략 Total execution time: 3.58 seconds Expecting to find a type to be declared in a module rules named 'VisualStudioTools' in . This type must derive from the 'ModuleRules' type defined by Unreal Build Tool.Build failed. %AppData%\Local\UnrealBuildTool\Log.txt 내용:...중략Found Windows 10 SDK root at C:\Program Files (x86)\Windows Kits\10 (1)Found Windows 10 SDK root at C:\Program Files (x86)\Windows Kits\10 (2)Found Windows 10 SDK version 10.0.20348.0 at C:\Program Files (x86)\Windows Kits\10Found Universal CRT version 10.0.20348.0 at C:\Program Files (x86)\Windows Kits\10Found Windows 10 SDK version 10.0.22621.0 at C:\Program Files (x86)\Windows Kits\10Found Universal CRT version 10.0.22621.0 at C:\Program Files (x86)\Windows Kits\10Win64 Installed SDK(s): MinVersion_Sdk=10.0.00000.0, MaxVersion_Sdk=10.9.99999.0, CurrentVersion_Sdk=10.0.22621.0, Version_AutoSdk=10.0.18362.0, CurrentVersion_AutoSdk= Registering build platform: Win64 - buildable: TrueCommand line: "D:\Users\Epic Games\UE_5.3\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" "-Target=UE5CppPart1_01Editor Win64 Development -Project=\"D:/Users/userid/Documents/Unreal Projects/UE5CppPart1_01/UE5CppPart1_01.uproject\"" -LiveCoding "-LiveCodingModules=D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCodingModules.json" "-LiveCodingManifest=D:/Users/Epic Games/UE_5.3/Engine/Intermediate/LiveCoding.json" -WaitMutex -LiveCodingLimit=100...중략Makefile is older than .uproject file, ignoring itCreating makefile for UE5CppPart1_01Editor (.uproject file is newer)Skipping D:\Users\Epic Games\UE_5.3\Engine\Intermediate\Build\BuildRules\UE5Rules.dll: File is installedSkipping D:\Users\Epic Games\UE_5.3\Engine\Intermediate\Build\BuildRules\UE5ProgramRules.dll: File is installedCompiled assembly file 'D:\Users\userid\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll' appears to be for a newer CLR version or is otherwise invalid. Unreal Build Tool will try to recompile this assembly now. (Exception: Could not load file or assembly 'D:\Users\userid\AppData\Local\UnrealEngine\Intermediate\Build\BuildRules\MarketplaceRules.dll'. Format of the executable (.exe) or library (.dll) is invalid.)..중략Found Visual Studio installation: C:\Program Files\Microsoft Visual Studio\2022\Community (Product=Microsoft.VisualStudio.Product.Community, Version=17.7.34221.43)Found Visual Studio toolchain: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933 (Family=14.34.31933, FamilyRank=2, Version=14.34.31947, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error=False, Redist=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.36.32532)Found Visual Studio toolchain: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532 (Family=14.36.32532, FamilyRank=0, Version=14.36.32542, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error=False, Redist=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.36.32532)Found Visual Studio toolchain: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822 (Family=14.37.32822, FamilyRank=4, Version=14.37.32825, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error=False, Redist=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.36.32532)Building UnrealEditor - UE5CppPart1_01Editor - Win64 - DevelopmentTotal execution time: 3.58 secondsExpecting to find a type to be declared in a module rules named 'VisualStudioTools' in . This type must derive from the 'ModuleRules' type defined by Unreal Build Tool.BuildException: Expecting to find a type to be declared in a module rules named 'VisualStudioTools' in . This type must derive from the 'ModuleRules' type defined by Unreal Build Tool. at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 480 at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 423 at UnrealBuildTool.UEBuildTarget.CreateModuleRulesAndSetDefaults(String ModuleName, String ReferenceChain, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5210 at UnrealBuildTool.UEBuildTarget.FindOrCreateModuleByName(String ModuleName, String ReferenceChain, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5334 at UnrealBuildTool.UEBuildTarget.FindOrCreateCppModuleByName(String ModuleName, String ReferenceChain, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5471 at UnrealBuildTool.UEBuildTarget.AddPlugin(PluginReferenceDescriptor Reference, String ReferenceChain, String[] ExcludeFolders, Dictionary`2 NameToInstance, Dictionary`2 NameToInfos, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 4511 at UnrealBuildTool.UEBuildTarget.SetupPlugins(ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 4285 at UnrealBuildTool.UEBuildTarget.PreBuildSetup(ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 3316 at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, Boolean bSkipRulesCompile, Boolean bForceRulesCompile, Boolean bUsePrecompiled, UnrealIntermediateEnvironment IntermediateEnvironment, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 1366 at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 1114 at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 396 at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 252 at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in D:\Users\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 659WriteFileIfChanged() wrote 0 changed files of 0 requested writes.Timeline:[ 0.000][ 0.000](+3.595) <unknown>[ 3.595]
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
.uasset 패키지 파일 제어 질문입니다.
SavePackage() 할때 패키지 기존 데이터 초기화하고 새로 넣는 방법이나.uasset 패키지 파일을 런타임 중 삭제하는 방법이 있나요?? bool check = FPlatformFileManager::Get().GetPlatformFile().DeleteFile(*PackageFileName); 이건 잘 안되는 것 같습니다.
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UPROPERTY()를 이용한 댕글리 포인터 문제 해결 질문
UObject 포인터 멤버 변수에 UPROPERTY()를 붙여야하는 이유를 제가 제대로 이해한 것인지 궁금합니다.동적 할당한 UObject는 가비지 컬렉터로 관리되며, 스윕으로 정리되는 조건은 참조 여부이다. (해당 UObject를 참조하고 있는 곳이 있다면 스윕 X) - 메모리 누수 문제 해결UPROPERTY()를 선언한 포인터 멤버 변수를 사용해야 가비지 컬렉터에서 참조 여부를 판단할 수 있다.즉, UPROPERTY()를 선언한 포인터 멤버 변수가 참조하는 UObject는 가비지 컬렉터가 지울수 없으니 댕글리 포인터가 될 수 없다. - 모든 UObject 포인터에 UPROPERTY()를 선언 해주는 것 만으로도 댕글리 문제 해결 만약 제가 제대로 이해한게 맞다면 두 가지 궁금한 점이 있습니다.어느 곳에도 참조되지 않는 Actor는 스윕으로 부터 어떻게 안전한가요?Actor를 참조하고 있는 A 객체가 있고 해당 Actor가 Destory 됐을 때(몬스터가 죽었을 때), A 객체에서 접근을 한다면 댕글리 포인터가 될 것 같은데, 이때는 어떤식으로 댕글리 포인터를 해결하나요?
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
콘텐츠 브라우저에 플러그인 폴더 생성이 안됩니다.
안녕하세요, 콘텐츠 브라우저에 플러그인 폴더 생성이 안되지만, Edit > Plugins > PROJECT > Other에는 GameUtility플러그인이 존재합니다. Plugins 폴더가 보이지 않아도 무방한가요?
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
plugin이나 thirdParty로 있는 모듈의 파일 접근
플러그인은 메인 게임 모듈.build.cs에 모듈 추가 안해도 되는 건가요??? 그리고 메인 모듈에있는 클래스에서 플러그인에 있는 헤더파일을 include 하려할 때, 인텔리전스 자동완성 추적이 안되는 것 같던데 원래 그런가요???
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
오브젝트를 NewObject로 생성할 때 클래스에 생성자 인수가 있다면
NewObject로 생성할 때, 패키지 관련 인자를 넣어서 만드는 것 같은데요. 만약 객체 정의에 매개변수가 있는 생성자 함수가 있고 이 생성자로 객체를 생성하고 싶다면 어떻게 해야 하나요?
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Shipping, Package Project
게임 실행 파일을 만드는 과정이 visual studio에서 Shipping 으로 빌드 한번 하고에디터에서 Package Project를 하는건가요???
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
아래 서브오브젝트 불러오기 질문보고 해봤는데요
LogTemp: [Package로 에셋 불러오기] 이름 이득우, 순번 36LogTemp: [에셋 서브 오브젝트] 이름 학생1, 순번 1LogTemp: [에셋 서브 오브젝트] 이름 학생10, 순번 10LogTemp: [에셋 서브 오브젝트] 이름 학생2, 순번 2LogTemp: [에셋 서브 오브젝트] 이름 학생3, 순번 3LogTemp: [에셋 서브 오브젝트] 이름 학생4, 순번 4LogTemp: [에셋 서브 오브젝트] 이름 학생5, 순번 5LogTemp: [에셋 서브 오브젝트] 이름 학생6, 순번 6LogTemp: [에셋 서브 오브젝트] 이름 학생7, 순번 7LogTemp: [에셋 서브 오브젝트] 이름 학생8, 순번 8LogTemp: [에셋 서브 오브젝트] 이름 학생9, 순번 9 생성한 순서대로 안 나오고 마지막 10번이 중간에 출력되는데순서는 원래 안 맞춰지는 건가요???
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
첫 번째 topStudent 에셋 만드는 예제가 잘 안되요..
성공했다는 로그까지 찍히는데 에디터 상으로 TopStudent에셋은 안보이고, 파일 탐색기에 Content폴더에는 Student.uasset이 있긴 해요. 그리고 로그에LogSavePackage: Moving output files for package: /Game/StudentLogSavePackage: Moving '../../../../Users/themo/Documents/Unreal Projects/UnrealSerialization/Saved/Student425875224600D84377F94498A09EBA32.tmp' to '../../../../Users/themo/Documents/Unreal Projects/UnrealSerialization/Content/Student.uasset'LogTemp: 패키지 저장 성공. 패키지 관련 로그도 찍히는데 뭐가 잘못된 건지 혹시 알 수 있을까요...
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Json 예제에서 파일 접근 FFileHelper 사용 질문
Json 예제 에서는 파일 아카이브 안쓰시고FFileHelper를 사용하셨는데요. UObject나 Struct를 파일에 저장/불러오기 할 때도 FFileHelper로 파일 접근 못하나요??? LoadFileToArray 라는 함수도 있는 걸로 보아 테스트 해봤는데 잘 안되는 것 같긴 합니다....
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
FStruct 안에 GetTypeHash 함수 friend 선언
구조체 안에 GetTypeHash 함수 만드실 때 friend를 하셨는데요. 제가 외부 함수를 클래스 내부에 friend 지정할 때 전방선언 같이 선언만 하는 모양새만 봐왔어서 수업 내용과 같이friend 가 붙은 함수에 정의까지 한 코드가 어떤 의미인지 잘 모르겠어서 질문 드렸습니다... 어떻게 해석 해야 하는지 잘 모르겠습니다...
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
TArray에서 TObjectPtr 사용시 지정자 필수
TArray에 자료형을 TObjectPtr로 만든 클래스 포인터로 사용 할 경우에는 UPROPERTY()가 필수라고 하셨는데요. TArray 아니더라도그냥 TObjectPtr 멤버 변수로 사용하더라도 UPROPERTY()가 필수인가요??? UPROPERTY() 없이 제가 언뜻 테스트한 바로는 엔진이 그냥 실행 중간에 인스턴스를 지워버리는 듯한 느낌이 들어서요...
- 해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
등록 순서/ broadcast순서
그냥 궁금해서 여쭤봅니다...학생 3 부터 출력이 되는 거 보니 등록 순이 별로 영향이 없는 것같은데 보통 등록한 순서의 역 순서로 broadcast 되나요?아니면 실행 할 때마다 달라지나요?
- 미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
uproject파일 수정후 generate visualstudio file을 실행한 뒤 오류
안녕하세요 교수님 uproject파일 수정후 generate visualstudio file을 실행한 뒤 생성한 솔류션 파일에서 #include "CoreMinimal"에서 컴파일 오류가 일어나는 현상이 있어 조언을 구할 수 있을까요? 해당 uproject는 이 상태에서 실행했으며 프로젝트의 include 경로를 조회해본결과 다른 정상적인 프로젝트에서 보이는 언리얼 경로들이 생성이 안되어있습니다. 제가 직접 하나하나씩 추가해도 괜찮지만 이렇게 자동으로 추가가안된거면 잠재적인 문제점이 있어 조언을 구해봅니다.