You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unreal Engine添加C++类后项目文件生成失败及编译异常求助

问题场景
  • 初始为纯蓝图Unreal Engine项目,因需导出角色Transform详情至外部文件(蓝图无法实现),尝试集成C++
  • 添加MyCharacter C++类后,收到提示:

    成功添加类“MyCharacter”,但需重新编译“test”模块才能在内容浏览器中显示。无法生成项目文件。是否打开输出日志查看详情?

  • 关闭重启项目后启动失败,提示:

    以下模块缺失或使用不同引擎版本构建:MyProject2,是否立即重建?

  • 确认后进一步提示:

    MyProject2无法编译,请尝试手动从源代码重建。

  • 预期目标:在Visual Studio中打开类文件,编辑角色相关函数
解决步骤
  1. 手动生成项目文件
    找到项目根目录下的.uproject文件,右键选择Generate Visual Studio project files,等待生成完成。此操作会重新生成VS解决方案,修复项目文件损坏或配置异常问题。

  2. 在Visual Studio中编译项目
    打开生成的.sln解决方案文件,确认配置正确:

    • 调试模式选DebugGame Editor,发布模式选Development Editor
    • 平台选择对应引擎平台(如Win64)
      右键点击解决方案,选择Build Solution,等待编译完成。若出现编译错误,查看VS输出窗口的错误信息针对性修复(如缺失头文件、语法错误等)。
  3. 重新启动Unreal Engine项目
    编译成功后,可直接从VS点击Local Windows Debugger启动项目,或双击.uproject文件打开。此时模块可正常加载,MyCharacter类会显示在内容浏览器中。

  4. 导出Transform功能实现示例
    在MyCharacter类中添加导出函数,示例代码如下:

    // MyCharacter.h 中声明函数
    UFUNCTION(BlueprintCallable, Category = "Transform")
    void ExportTransformToFile();
    
    // MyCharacter.cpp 中实现函数
    void AMyCharacter::ExportTransformToFile()
    {
        FTransform ActorTransform = GetActorTransform();
        FString SavePath = FPaths::ProjectDir() + TEXT("CharacterTransform.txt");
        FString TransformContent = FString::Printf(TEXT("Location: %s\nRotation: %s\nScale: %s"),
            *ActorTransform.GetLocation().ToString(),
            *ActorTransform.GetRotation().ToString(),
            *ActorTransform.GetScale3D().ToString());
        FFileHelper::SaveStringToFile(TransformContent, *SavePath);
    }
    

    编译后即可在蓝图中通过Call Function节点调用该函数,实现Transform信息导出。

内容的提问来源于stack exchange,提问作者LEJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:28:16