Jerico.Gu 2018-12-29 12:49 采纳率: 0%
浏览 522

LandscapeEdMode.cpp里的方法要怎么调用

最近要做个插件访问到UE4编辑器里的信息,用到LandscapeEdMode这个文件,使用的时候

FEdModeLandscape* LandscapeEdMode = (FEdModeLandscape*)GLevelEditorModeTools().GetActiveMode(FBuiltinEditorModes::EM_Landscape);

//像这样访问变量没问题

LandscapeEdMode->CurrentBrush;

//但是访问函数方法就会报错
LandscapeEdMode->CopyDataToGizmo();

//访问任何函数都会报错

错误 LNK1120 1 个无法解析的外部命令 PP C:\Users\Administrator\Desktop\HoudiniEngine\Plugins\HoudiniEngine\Binaries\Win64\UE4Editor-HoudiniEngineEditor.dll 1

错误 UBT ERROR: Failed to produce item: C:\Users\Administrator\Desktop\HoudiniEngine\Plugins\HoudiniEngine\Binaries\Win64\UE4Editor-HoudiniEngineEditor.dll PP C:\Users\Administrator\Desktop\HoudiniEngine\Intermediate\ProjectFiles\UnrealBuildTool 1

错误 MSB3075 命令“"E:\Epic Games\UE_4.21\Engine\Build\BatchFiles\Build.bat" PPEditor Win64 Development "C:\Users\Administrator\Desktop\HoudiniEngine\PP.uproject" -WaitMutex -FromMsBuild”已退出,代码为 5。请验证您是否拥有运行此命令的足够权限。 PP E:\VS\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets 44

错误 LNK2019 无法解析的外部符号 "public: void __cdecl FEdModeLandscape::CopyDataToGizmo(void)" (?CopyDataToGizmo@FEdModeLandscape@@QEAAXXZ),该符号在函数 "private: virtual class UObject * __cdecl UHoudiniAssetFactory::FactoryCreateBinary(class UClass *,class UObject *,class FName,enum EObjectFlags,class UObject *,wchar_t const *,unsigned char const * &,unsigned char const *,class FFeedbackContext *)" (?FactoryCreateBinary@UHoudiniAssetFactory@@EEAAPEAVUObject@@PEAVUClass@@PEAV2@VFName@@W4EObjectFlags@@1PEB_WAEAPEBEPEBEPEAVFFeedbackContext@@@Z) 中被引用 PP C:\Users\Administrator\Desktop\HoudiniEngine\Intermediate\ProjectFiles\Module.HoudiniEngineEditor.cpp.obj 1


相应模块"UnrealEd", "LevelEditor", “Landscape”,“LandscapeEditor”已经在.cs文件中引用
----------------------------
incluide了相关项

#include "Runtime/Landscape/Classes/Landscape.h"

#include "Runtime/Landscape/Classes/LandscapeProxy.h"

#include "Runtime/Landscape/Classes/LandscapeInfo.h"

#include "Runtime/Landscape/Classes/LandscapeLayerInfoObject.h"

#include "Editor/UnrealEd/Public/EditorModeTools.h"

#include "Editor/UnrealEd/Public/EditorModes.h"

#include "Editor/UnrealEd/Public/EditorModeManager.h"

#include "Editor/LandscapeEditor/Private/LandscapeEdMode.h"

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 14:24
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要正确地从LandscapeEdMode类中调用函数并获取其参数,你需要确保将正确的函数名和参数传递给LandscapeEdMode->CopyDataToGizmo()调用。

    如果你想要调用一个名为CopyDataToGizmo的方法,并且它接受一个参数,你可以这样做:

    FEdModeLandscape* LandscapeEdMode = (FEdModeLandscape*)GLevelEditorModeTools().GetActiveMode(FBuiltinEditorModes::EM_Landscape);
    LandscapeEdMode->CopyDataToGizmo(LandscapeEdMode->CurrentBrush);
    

    这里,CurrentBrush是一个指向当前编辑状态下的布景对象的指针。你应该能够直接访问它而不需要通过GetActiveMode来获取它的值。

    另外,请确保你的编译器已经正确配置并且支持宏定义#define UE4_EDITOR(如果未定义,则需要添加),这可以允许编译器识别出包含在构建脚本中的宏定义,例如#define UE4_EDITOR 1

    评论

报告相同问题?