UE4: 4.17.2 -> 4.18.1 プロジェクトのアップデートで発生した Warning と Error と対処メモ
若干の調査は必要なものの何れも些細な単純な置き換えで済む問題だけで済んだ。
Warning
1. AddTorque
は AddTorqueInRadians
に置き換えよ
warning C4996: 'UPrimitiveComponent::AddTorque': Use AddTorqueInRadians instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
- UPrimitiveComponent::AddTorque | Unreal Engine
- UPrimitiveComponent::AddTorqueInRadians | Unreal Engine
void AddTorque ( FVector Torque // Torque to apply. Direction is axis of rotation and magnitude is strength of torque. , FName BoneName = NAME_None // If a SkeletalMeshComponent, name of body to apply torque to. 'None' indicates root body. , bool bAccelChange = false // If true, Torque is taken as a change in angular acceleration instead of a physical torque (i.e. mass will have no effect). );
void AddTorqueInRadians ( FVector Torque // Torque to apply. Direction is axis of rotation and magnitude is strength of torque. , FName BoneName = NAME_None // If a SkeletalMeshComponent, name of body to apply torque to. 'None' indicates root body. , bool bAccelChange = false // If true, Torque is taken as a change in angular acceleration instead of a physical torque (i.e. mass will have no effect). );
API Reference だけ見ても違いがわからない。違いについては予感としては「たぶんない」のだけど、「ない」と知る必要がある。単位や補助単位の変換が必要だとか何かとあり得ない事もない。
source: Runtime/Engine/Classes/Components/PrimitiveComponent.h
void AddTorque(FVector Torque, FName BoneName = NAME_None, bool bAccelChange = false) { AddTorqueInRadians(Torque, BoneName, bAccelChange); }
安心して単に置き換えるとしよう。
2. FPaths::GameDir
は FPath::ProjectDir
に置き換えよ
warning C4996: 'FPaths::GameDir': FPaths::GameDir() has been superseded by FPaths::ProjectDir(). Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
source: Runtime/Core/Public/Misc/Paths.h
DEPRECATED(4.18, "FPaths::GameDir() has been superseded by FPaths::ProjectDir().") static FORCEINLINE FString GameDir() { return ProjectDir(); }
これも単純な置き換えで構わない。
Error
FFileHelper::LoadFileToString
の第3引数の型FFileHelper::EHashOptions
はuint32
から暗黙的に変換不能となった
error C2664: 'bool FFileHelper::LoadFileToString(FString &,const TCHAR *,FFileHelper::EHashOptions)': cannot convert argument 3 from 'const uint32' to 'FFileHelper::EHashOptions'
4.18 に取り込まれた以下のコミットで Runtime/Core/Public/Misc/FileHelper.h の struct EHashOptions { enum Type {
が enum class EHashOptions {
に変更されたので整数の値は直接設定不能になった。
素直に FFileHelper::EHashOptions::None
など enum class
値に置き換えればよい。