首先接触虚幻文档中提供给新手的第一个案例
悬浮旋转方块
具体操作的步骤可以点击下方链接:
编程快速入门 | 虚幻引擎文档 (unrealengine.com)
其中整理一下在这个初学课堂中学到的内容:
其中,在提供的重载函数Tcik当中需要接收float类型的DeltaTime参数,
DeltaTime
是解决FPS(即帧数)不断变化、不稳定的一个设计思想,很多程序需要不断刷新执行,那么一个属性值将不断被应用,如果每秒刷新次数不同,那么诸如Tick函数这样的功能被调用的次数也就不同,譬如,假设有这样一个情境,需要每帧都调用一次Debuff计算如减血(-1HP),那么一秒内60FPS的会减60滴血,120FPS的会减120滴血,问题来了,如何每帧调用的同时(你总不能规定某些帧运行Tick,某些帧不运行Tick吧)保证不同设备的人可以获得相同的反馈,
所以,DeltaTime应运而出,DeltaTime = 1秒/帧数,那么Debuff乘以DeltaTime不就可以有效地解决问题了嘛
60FPS:-1Hp*DeltaTime*60(次)
120FPS::-1Hp*DeltaTime*120(次)
最终结果都为-1HP
UPROPERTY(VisibleAnyWhere)
UPROPERTY(VisibleAnywhere) UStaticMeshComponent* VisualMesh;
(我的理解)这个的功能在UE4编辑界面的具体体现为,你可以在编辑界面对创建的VisualMesh进行指定修改调试
在细节面板中,会出现可以修改的StaticMesh,可以指定对象。
悬浮代码
void AfloatingActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
FVector NewLocation = GetActorLocation();
FRotator NewRotation = GetActorRotation();
float RunningTime = GetGameTimeSinceCreation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f; //Scale our height by a factor of 20
float DeltaRotation = DeltaTime * 20.0f; //Rotate by 20 degrees per second
NewRotation.Yaw += DeltaRotation;
SetActorLocationAndRotation(NewLocation, NewRotation);
}
GetGameTimeSinceCreation()配合Sin函数可以有效地限制DeltaHeight并且有效地实现上下悬浮的效果,其Yaw轴的旋转是跟随时间变化而实时变化,用到了DeltaTime,体现了上文所讲的Tick作用。
虚幻引擎中的坐标轴
即 俯仰(Pitch)、偏摆(Yaw)、翻滚(Roll)
好了,今天的总结到此结束,有不足之处还请大家多多包涵



