|
UE4.3增加修改的功能很多,作为程序员我只关注了有关程序的一些内容,原来4.2的项目代码放到4.3当中编译出现了大量的错误。原因是UE4.3对很多核心的代码以及头文件,依赖,可用范围等等做了许多修改,当然不可能一下觉察到这些修改,下面我只对我的原来工程升级到4.3所遇到的麻烦以及解决方案做些介绍:
1.Projectile类中的碰撞回调函数由原来的OnOverlap改为OnHit:...CollisionComp- OnComponentHit.AddDynamic(this, AFSProjectile::OnHit);...void AFSProjectile::OnHit(AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult Hit){...}
2.在我的工程类(FSGame.h)中添加头文件#include Slate.h #include SoundDefinitions.h 否则一些FSlateSound、FSlateBrush会无法识别出现错误。官网原文说明:Slate.h no longer included by Engine.h, so if you are using Slate, you will need to include yourself.
3.部分函数无法使用了,原因是新版本没有为我们自己添加头文件,需要自己添加,比如GetRendererModule()函数,需要添加:#include EngineModule.h
4.GetAudioDevice()等涉及到音频的函数无法识别,在前面添加#include SoundDefinitions.h 即可解决。
5.继承FSlateWidgetStyle类如果无法识别,需要添加:#include SlateWidgetStyle.h
6.EnginePrivate.h 无法找到,因为新版本彻底把他的可用范围缩小到了EngineModule,外部Module无法引用。官网说明原文:
EnginePrivate.h is now actually private to Engine module and should not be used externally
7.OVERRIDE关键字已经被彻底替换成小写即:override,我们可以使用VS的全局查找/替换功能,同时勾选大小写符合及全文符合。
官网原文说明:New: Changed OVERRIDE and FINAL macros to keywords override and final. The usage of macros is now deprecated.
还有很多修改,还得待到开发过程中随时来调整,看来UE4编程初级教学的源代码需要更新了,教程使用的4.0版本,如果你使用4.0版本作为学习自然不会影响,如果你有**症非得用4.3或者更新的版本,请关注论坛,我会发布相应版本的源代码。
微信订阅号搜索“风之神韵”,关注随时获取更多教学信息。
http://i.youku.com/u/UMTE5MzA2NDA0 |
|