#c #unreal-engine4 #unreal-blueprint
Вопрос:
Я создал простой класс, который реализовал AActor. В этом классе я хочу получить положение мыши в игровом экране. Я знаю, что я должен включить «Blueprint/WidgetLayoutLibrary.h» в *.cpp-файл и в методе «Галочка» написать следующее:
FVector2D mousePosition = UWidgetLayoutLibrary::GetMousePositionOnViewport(GetWorld());
так что каждый тик, чтобы получить положение мыши…
но!!! Я получаю сообщение об ошибке:
Worlds_constantes.cpp.obj : error LNK2019: ??뫪? ?? ??ࠧ??襭??? ???譨? ᨬ??? "__declspec(dllimport) public: static struct FVector2D __cdecl UWidgetLayoutLibrary::GetMousePositionOnViewport(class UObject *)" (__imp_?GetMousePositionOnViewport@UWidgetLayoutLibrary@@SA?AUFVector2D@@PEAVUObject@@@Z) ? ?㭪樨 "public: virtual void __cdecl AWorlds_constantes::Tick(float)" (?Tick@AWorlds_constantes@@UEAAXM@Z).
C:UsersuserDocumentsUnreal ProjectsProject_nameBinariesWin64UE4Editor-Project_name-6913.dll : fatal error LNK1120: ??ࠧ??襭??? ???譨? ??????⮢: 1
Что делать? Как это исправить?
Комментарии:
1. Ошибка компоновщика говорит, что не удается найти реализацию UWidgetLayoutLibrary::GetMousePositionOnViewPort. Опубликуйте свой код актера?
2. Это очень странно)) этот метод был написан не мной, это системный метод из библиотеки UE4) НО спасибо за ansver.
3. Вы включили библиотеку для FVector2D? Если нет, то вы могли бы попробовать, возможно, это поможет. Вот ссылка на это:
#include "Math/Vector2D.h"
.
Ответ №1:
Возможно, вы нашли ответ сейчас, но этот вопрос беспокоит меня уже несколько дней, поэтому я решил ответить вам здесь, просто добавьте «UMG» в указанную позицию в Project.build.cs, возможно, этот вопрос слишком прост, в Интернете почти нет ответа.Но для тех, кто только учится Unreal и C , это неизвестно.
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","UMG" });