当前位置: 首页 > news >正文

网站制作设计收费标准什么颜色做网站显的大气

网站制作设计收费标准,什么颜色做网站显的大气,云上的网站怎么做等保,外呼系统1.创建该类的子类 然后重启项目#xff0c;再创建子类的子类 再创建一个UI用于敌人 创建一个接口 2.然后打开Warriorplayer和EnemyCharacter实现ui组件 //UIUPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category Combat, meta (AllowPrivateAccess 再创建子类的子类 再创建一个UI用于敌人 创建一个接口 2.然后打开Warriorplayer和EnemyCharacter实现ui组件 //UIUPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category Combat, meta (AllowPrivateAccess true))UPlayerUIComponent* PlayerUIComponent; PlayerUIComponent CreateDefaultSubobjectUPlayerUIComponent(TEXT(PlayerUIComponent)); UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category UI)UEnemyUIComponent* EnemyUIComponent; EnemyUIComponent CreateDefaultSubobjectUEnemyUIComponent(EnemyUIComponent); 3.打开PawnUIInterface public:virtual UPawnUIComponent* GetPawnUIComponent() const 0; 打开CHaracterBase继承此接口 //Begin IUIPawnInterface Interfacevirtual UPawnUIComponent* GetPawnUIComponent() const override;//End IUIPawnInterface Interface UPawnUIComponent* ACharacterBase::GetPawnUIComponent() const {return nullptr; } 然后打开WarriorPlayer做同样的事 //Begin IUIPawnInterface Interfacevirtual UPawnUIComponent* GetPawnUIComponent() const override;//End IUIPawnInterface Interface UPawnUIComponent* AWarriorPlayer::GetPawnUIComponent() const {return PlayerUIComponent; } 打开EnemyBase做同样的事 //Begin IUIPawnInterface Interfacevirtual UPawnUIComponent* GetPawnUIComponent() const override;//End IUIPawnInterface Interface UPawnUIComponent* AEnemyBase::GetPawnUIComponent() const {return EnemyUIComponent; } 4.接下来对数值进行广播 打开PawnUIComponent.h,创建好委托 //当值的百分比发生变化时 DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPercentChangedDelegate, float, NewPercent);UPROPERTY(BlueprintAssignable)FOnPercentChangedDelegate OnCurrentHealthChanged; 然后进入PlayerUIComponent.h为Rage单独创建一个委托因为这个东西是只有玩家才有怪物没有 UPROPERTY(BlueprintAssignable)FOnPercentChangedDelegate OnCurrentRageChanged; 然后进入PawnUiInterface.h virtual UPlayerUIComponent* GetPlayerUIComponent() const; UPlayerUIComponent* IPawnUIInterface::GetPlayerUIComponent() const {return nullptr; } 进入WarriorPlayer覆写此函数 virtual UPlayerUIComponent* GetPlayerUIComponent() const override; UPlayerUIComponent* AWarriorPlayer::GetPlayerUIComponent() const {return PlayerUIComponent; } 接着进入XMBAttributeSet,先创建一个用于存储当前Pawn对象的变量 private://用于存储当前的PawnUIInterfaceTWeakInterfacePtrIPawnUIInterface CachedPawnUIInterface; 然后需要在数值发生变化时先获取到当前对象的PawnUIComponent void UXMBAttributeSet::PostGameplayEffectExecute(const struct FGameplayEffectModCallbackData Data) { //获取到目标的UIComponent则可以用广播if (!CachedPawnUIInterface.IsValid()){CachedPawnUIInterface TWeakInterfacePtrIPawnUIInterface(Data.Target.GetAvatarActor());}checkf(CachedPawnUIInterface.IsValid(), TEXT(%s didnt implement IPawnUIInterface),*Data.Target.GetAvatarActor()-GetActorNameOrLabel());UPawnUIComponent* PawnUIComponent CachedPawnUIInterface-GetPawnUIComponent();checkf(PawnUIComponent,TEXT(Couldnt extrac a PawnUiComponent from %s),*Data.Target.GetAvatarActor()-GetActorNameOrLabel()); } 然后在生命发生变化时 //Data.EvaluatedData.Attribute是当前被修改的属性if (Data.EvaluatedData.Attribute GetCurrentHealthAttribute())//找到正在修改的属性{const float NewCurrentHealth FMath::Clamp(GetCurrentHealth(),0.f, GetMaxHealth());SetCurrentHealth(NewCurrentHealth);//广播变化后的生命PawnUIComponent-OnCurrentHealthChanged.Broadcast(GetCurrentHealth()/GetMaxHealth());} 当体力发生变化时需要现货区到玩家的UIComponent if (UPlayerUIComponent* PlayerUIComponent CachedPawnUIInterface-GetPlayerUIComponent()){PlayerUIComponent-OnCurrentRageChanged.Broadcast(GetCurrentRage()/GetMaxRage());} 最后在设置当前生命后再广播一次当前生命 SetCurrentHealth(NewCurrentHealth);const FString DebugString FString::Printf(TEXT(OldHealth : %f, damage Done :%f, NewCurrentHealth:%f),OldHealth,DamageDone,NewCurrentHealth);//将当前生命广播出去不管变没变化都要广播PawnUIComponent-OnCurrentHealthChanged.Broadcast(GetCurrentHealth()/GetMaxHealth()); 5.启动项目创建一个UserWidget的C类 然后创建两个函数 protected:virtual void NativeOnInitialized() override;UFUNCTION(BlueprintImplementableEvent, meta (DisplayName On Owning Player UI Component Initialized))void BP_OnOwningPlayerUIComponentInitialized(UPlayerUIComponent* OwningPlayerUIComponent); void UWarriorWidgetBase::NativeOnInitialized() {Super::NativeOnInitialized();if (IPawnUIInterface* PawnUIInterface CastIPawnUIInterface(GetOwningPlayerPawn())){if (UPlayerUIComponent* PlayerUIComponent PawnUIInterface-GetPlayerUIComponent()){BP_OnOwningPlayerUIComponentInitialized(PlayerUIComponent);}}} 6.这一步要进行敌人widget的初始化首先进入pawnuiinterface为敌人写一个获取uicompnent的函数 virtual UEnemyUIComponent* GetEnemyUIComponent() const; UEnemyUIComponent* IPawnUIInterface::GetEnemyUIComponent() const {return nullptr; } 然后进入EnemyBase内进行覆写 virtual UEnemyUIComponent* GetEnemyUIComponent() const; UEnemyUIComponent* AEnemyBase::GetEnemyUIComponent() const {return EnemyUIComponent; } 再回到WarriorWidgetBase创建两个函数 public://为敌人创建的UFUNCTION(BlueprintCallable)void InitEnemyCreatedWidget(AActor* OwningEnemyActor); protected: UFUNCTION(BlueprintImplementableEvent, meta (DisplayName On Owning Enemy UI Component Initialized))void BP_OnOwningEnemyUIComponentInitialized(UEnemyUIComponent* OwningEnemyUIComponent); void UWarriorWidgetBase::InitEnemyCreatedWidget(AActor* OwningEnemyActor) {if (IPawnUIInterface* PawnUIInterface CastIPawnUIInterface(OwningEnemyActor)){//获取Enemy的UIComponentUEnemyUIComponent* EnemyUIComponent PawnUIInterface-GetEnemyUIComponent();checkf(EnemyUIComponent, TEXT(Failed to extrac an EnemyUIComponent from %s),*OwningEnemyActor-GetActorNameOrLabel());BP_OnOwningEnemyUIComponentInitialized(EnemyUIComponent);} }
http://www.dnsts.com.cn/news/176300.html

相关文章:

  • 中国建筑网官方网站入口企业网站建设网站专业服务
  • 山东省住房和城乡建设厅服务网站iis新建网站无法浏览
  • 佛山做网站公司网站建设需要的客户资料
  • 如何检测做的网站的兼容性请人帮忙做网站推广
  • 酒店网站模版湖北高速公路建设网站
  • php网站打开速度慢icp备案网站信息查询
  • 开网站做销售泉州网站建设效率网络
  • 酒店网站开发程序员珠海网站建设成功案例
  • 网站收录引擎js 网站校验
  • 网站空间的根目录深圳市盐田区住房建设局网站
  • 做网站免费的域名wordpress资讯自媒体中文主题
  • 上海 网站平台开发2021年php凉透了
  • 潍坊市做网站的公司百度权重1是什么意思
  • 普升高端品牌网站建设广西远伟网络科技有限公司
  • 中国建设银行 英文网站wordpress多单页
  • 网站开发推荐书籍自己怎么免费做网站网页
  • 北京市城乡建设部网站首页网站建设及运营 多少钱
  • 温州建设学校网站企业电子商务网站建设的重要性
  • 温州专业微网站制作价格wordpress 截断
  • 金融行业做网站需要什么网站开发需求分析包括哪些方面
  • 网站建设文件上传谷歌网站推广排名工具
  • 中国风 网站模板查询域名是否被注册
  • 三亚做网站那家效果好网站开发及app开发报价
  • 房子信息查询网站入口网站建设大
  • 个人网站备注模板电商网站开发文献综述
  • 北京模板网站开发网站栏目规划
  • 深圳的网站建设公司那家好中国最新军事动态视频
  • 怎么做一个单页的网站app开发费用标准
  • 花型图案设计网站北京住房和城乡建设网站
  • 柠檬网络科技网站建设wordpress 增加导航