请问类继承后为何很多头文件无法直接调用了呢?
这个搞了好久了,一直没解决,拜托各位帮我看看吧,谢谢啦!这样的,我建立了一个车辆的C++工程模板,然后打算仿造WheeledVehicleMovementComponent4W,从WheeledVehicleMovementComponent这个类派生出一个名为VehicleMovementComponentNW的新类来。官方的WheeledVehicleMovementComponent4W中#include “EnginePrivate.h”可以直接在WheeledVehicleMovementComponent4W.h中调用,而我把它放在我自己的VehicleMovementComponentNW.h中却打不开,必须输入形如#include “D:/Epic Games/4.12/Engine/Source/Runtime/Engine/Private/EnginePrivate.h”的完整路径。请问这个什么原因呢?项目属性里面已经包含了路径D:/Epic Games/4.12/Engine/Source/Runtime/Engine/Private,为何还需要完整路径才能调用呢?
(
说明:这个工程计划用来搞一个多轮车辆的,在虚幻4官方论坛看到了老外做的类继承,可惜自己模仿不来。附上原贴地址:
https://forums.unrealengine.com/showthread.php?93866-Fixing-the-Vehicle-class-in-UE4-starting-with-NWheel-implementation&p=434618
)
试试把项目的UEProject文件重新编译一下看看 eeooyi 发表于 2016-6-14 00:46
试试把项目的UEProject文件重新编译一下看看
谢谢!可是我并没有对源代码做出任何改变啊?另外用的是Epic Games Launcher下载的,看来只有在源码里面重新编译了 本帖最后由 lein 于 2016-6-18 19:18 编辑
把#include “EnginePrivate.h” 这行放在 #include "****.generated.h" 这行的前面(交换下现在的顺序)试试?
因为编译的时候头文件会先被UE4预处理一遍(类似QT那种) lein 发表于 2016-6-18 19:16
把#include “EnginePrivate.h” 这行放在 #include "****.generated.h" 这行的前面(交换下现在的顺序)试 ...
谢谢提醒,这个一直注意的。 EnginePrivate.h 不是对外用的, 它位于引擎的 Private 目录下,你用 Engine.h 代替。另外注意,不要将这个包括大量其它.h的头文件放到你的 VehicleMovementComponentNW.h 使用,这等于敞开了一扇大门。在你的头文件中声明其它类时,应该先考虑使用前置声明,其次是仅包括要声明类的.h头文件。像 Engine.h 这种仅用于 cpp 中。 Someday 发表于 2016-6-25 15:29
EnginePrivate.h 不是对外用的, 它位于引擎的 Private 目录下,你用 Engine.h 代替。另外注意,不要将这个 ...
谢谢解答。如果想调用引擎的Private目录下的一些文件,该怎么办呢?顺便问下有没有C++的自己继承出单独一个类的案例可供学习呢?官方给出的Demo都是调用已有的类啊 Private内的.h文件比较少,你要到public目录下找include private目录下.h的头文件。
你创建一个基于C++车辆模板的工程看看吧,我记得有两套,一套是高级的车辆系统模板 Someday 发表于 2016-6-28 12:03
Private内的.h文件比较少,你要到public目录下找include private目录下.h的头文件。
你创建一个基于C++车辆 ...
嗯 我这两个的C++工程我都练习过了,用空的C++工程创建过。现在多轮车辆不会搞,用蓝图也搞不出来。根据官网的教程,做了蓝图的练习,可是蓝图多轮添加也不行,如图,不知道为何。小熊猫答应看看的,可是一直没空……:'(
烦劳someday大神帮我看看吧 谢谢啦
页:
[1]