给游戏添加声音
很简单的小功能
新建两个蓝图类型是Cue和Attenuation
修改Attenuation的预设
在cue内插入预设
给角色添加死亡动画
首先在角色蓝图的状态蓝图内添加死亡动画
修改角色组件USAttributeComponent.h文件
UFUNCTION(BlueprintCallable,Category="Health") bool IsALive();
在.cpp内添加
bool USAttributeComponent::IsALive() { return Health > 0.0f; }
在角色.h蓝图内添加函数
UFUNCTION() void OnHealthChanged(AActor* InstigatorActor,USAttributeComponent* OwningComp,float NewHealth,float Delta);
virtual void PostInitializeComponents() override;
在.cpp内添加
void ASCharacter::PostInitializeComponents() { //初始化的时候绑定事件 Super::PostInitializeComponents(); AttributeComp->OnHealthChanged.AddDynamic(this,&ASCharacter::OnHealthChanged); }
void ASCharacter::OnHealthChanged(AActor* InstigatorActor, USAttributeComponent* OwningComp, float NewHealth, float Delta) { //当血量少于0的时候清除控制器的输入 if(NewHealth < 0.0f && Delta<0.0f) { APlayerController * PC = Cast
创建物体的血量UI
在之前学习材质建立的Dummy物体内添加蓝图
##这里遇到了问题,创建出来的UI一直在画面中央不在物体上
已经解决,是Dummy的蓝图内创建错误
我一开始创建的是Object
经过修改后是
我们应该创建的是Widget类型而不是Object类型
##又出现了奇怪的Bug,SetRenderTranslation显示的位置错误
已解决,是因为我忘记调整UI的位置了
修改前:
修改后:
效果图:
最后让UI在击中的时候才会显示