UE5.1.1 C++从0开始(15.作业4个人作业分享)

这篇具有很好参考价值的文章主要介绍了UE5.1.1 C++从0开始(15.作业4个人作业分享)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

教程链接:https://www.bilibili.com/video/BV1nU4y1X7iQ

好吧这个作业应该是之前写的,但是我发现我没写,后面我又回去自己写了一遍再看代码,感觉上大差不差,各位可以看着我的和老师的还有自己的对比下。

SBTService_CheckHealth.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "BehaviorTree/BTService.h"
#include "SBTService_CheckHealth.generated.h"

/**
 * 
 */
UCLASS()
class ACTIONROGUELIKE_API USBTService_CheckHealth : public UBTService
{
	GENERATED_BODY()
	
protected:
	UPROPERTY(EditAnywhere,Category="AI")
	FBlackboardKeySelector CheckHealthKey;

protected:
	virtual void TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds) override;
	

};

SBTService_CheckHealth.cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "AI/SBTService_CheckHealth.h"
#include "AIModule/Classes/AIController.h"
#include "AI/SAICharacter.h"
#include "SAttributeComponent.h"
#include "AIModule/Classes/BehaviorTree/BlackboardComponent.h"

void USBTService_CheckHealth::TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds)
{
	Super::TickNode(OwnerComp, NodeMemory, DeltaSeconds);

	//获得黑板组件,获取上面的键值
	UBlackboardComponent* BlackboardComponent = OwnerComp.GetBlackboardComponent();

	//先获得AI的角色
	//我这里就不像教程写的那样每一步都用一个ensure了
	AAIController* MyController = OwnerComp.GetAIOwner();
	ASAICharacter* AICharacter = Cast<ASAICharacter>(MyController->GetCharacter());
	//拿到我们的attributecomp
	USAttributeComponent* AttributeComp = USAttributeComponent::GetArrtibutes(AICharacter);
	if (AttributeComp->GetHealth()<=50.0f)
	{
		BlackboardComponent->SetValueAsBool(CheckHealthKey.SelectedKeyName, true);
	}
	else {
		BlackboardComponent->SetValueAsBool(CheckHealthKey.SelectedKeyName, false);

	}


}

SBTTask_HealSelf.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "BehaviorTree/BTTaskNode.h"
#include "SBTTask_HealSelf.generated.h"

/**
 * 
 */
UCLASS()
class ACTIONROGUELIKE_API USBTTask_HealSelf : public UBTTaskNode
{
	GENERATED_BODY()

	virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;


};

SBTTask_HealSelf.cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "AI/SBTTask_HealSelf.h"
#include "AI/SAICharacter.h"
#include "AIModule/Classes/AIController.h"
#include "SAttributeComponent.h"

EBTNodeResult::Type USBTTask_HealSelf::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
	//获得Controller
	AAIController* MyController = OwnerComp.GetAIOwner();
	//获得Character
	ASAICharacter* MyPawn = Cast<ASAICharacter>(MyController->GetCharacter());
	if (ensure(MyPawn))
	{
		USAttributeComponent* MyAttributeComp = USAttributeComponent::GetArrtibutes(MyPawn);
		MyAttributeComp->ApplyHealthChange(MyPawn, MyAttributeComp->getHealthMax());
		return EBTNodeResult::Succeeded;
	}
	return EBTNodeResult::Failed;
}

行为树如图所示

UE5.1.1 C++从0开始(15.作业4个人作业分享)

EQS的设置看教程的来,我还没研究透,研究透了单独写一个EQS的文章,把里头的随机点如何得分详实地写出来。文章来源地址https://www.toymoban.com/news/detail-510137.html

到了这里,关于UE5.1.1 C++从0开始(15.作业4个人作业分享)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE5.1.1C++从0开始(4.虚幻的接口以及交互功能)

    这一个章节对于第一次接触虚幻的人来说可以说是最绕的一个点,因为老师突然给你塞了很多的概念,对于这一块的学习,我个人的推荐是:先把蓝图搞明白了,再对应到C++的代码中,不然一定会被整的晕头转向。还是,有不懂的点就来问我。 主要有几个大点: 接口 自定义

    2024年02月04日
    浏览(41)
  • UE5.1.1创建C++工程失败解决办法

    闲来无事,更新了一下UE5.1.1,妈蛋创建C++项目居然失败, 错误截图如下: 妈蛋,后面一堆乱码,鬼知道是啥错误! 咋解决?步步高打火机,直接复制第一段的Running后面的代码到cmd中执行。 这下看的懂了, ‘dotnet’ 不是内部或外部命令,也不是可运行的程序 一般出现xxx不

    2024年02月01日
    浏览(46)
  • 《UE5_C++多人TPS完整教程》学习笔记15 ——《P16 会话接口委托(Session Interface Delegates)》

    本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P16 会话接口委托(Session Interface Delegates)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。 本节课我们将向新创建的子系统添

    2024年02月20日
    浏览(46)
  • UE5 与 C++ 入门教程·第一课:角色与 Enhanced Input

    本文主要围绕 UE5 新的输入系统,手把手从 0 搭建 Unreal 项目,实现角色的基础移动。 重要提示:众所周知,C++ 属于编译型语言,因此动态灵活性不足,不过执行效率高,而蓝图简单灵活,却执行效率低。因此推荐一种开发方式—— 用 C++ 创建基类,蓝图继承 C++ 的基类 ,获

    2024年02月07日
    浏览(58)
  • UE5学习笔记(1)——从源码开始编译安装UE5

    0.1 在windows的话,建议装一个Git bash,同时还要有自己的github账号,注册github账号这里就不再赘述了,安装git bash后,设置自己的github账号。或者在windows装一个WSL。 0.2 把自己的github账号关联Epic官方,必须关联之后才能下载Unreal的源码。关联方式见官方教程 0.3 安装VS 2022,这里

    2024年02月08日
    浏览(48)
  • UE5的项目建立及UE5(虚幻引擎5)个人视角移动按键操作及运行项目/day.2

    进入UE5的界面就是这样: 由于我们是刚下载的,“最近打开的项目”是没有项目打开的所以我们需要新建一个新的项目。 注意,项目位置最好是英文的,否则可能会出错。(可能不会,毕竟很多人都说有可能有BUG,小心为好)。 初学者的话选择蓝图编程(毕竟蓝图编程比较

    2024年02月15日
    浏览(53)
  • UE5 日记(人物连招:蒙太奇动画通知(含视频链接))

    教程 https://www.youtube.com/watch?v=sWpENaVGj2Mlist=PLiSlOaRBfgkcPAhYpGps16PT_9f28amXiindex=10pp=iAQB 已搭载战斗系统模块,可以收到输入指令 第一次攻击: 第一次攻击,设置Attacking为真。当连招断开时,设置Attacking未假。 若Attacking为真时,按下攻击键,想要连击,设置save attack为真;若Attacking为

    2024年02月06日
    浏览(46)
  • 【UE5 Cesium】15-Cesium for Unreal 加载本地影像和地形

    目录 一、加载全球无高度地形 二、加载区域DEM 三、加载离线地图影像 1. 先去如下网址下载全球无高度地形:Using a global terrain layer without height detail - #9 by RidhwanAziz - Cesium for Unreal - Cesium Community 下载后如下: 解压后可以看到是一个.tif格式的文件 2. 打开CesiumLab,需要将tif转为

    2024年02月07日
    浏览(36)
  • 初学UE5,UE4的教程适用UE5吗?

    UE5是最近推出的一款游戏引擎,相较于UE4而言,它有着更好的性能和灵活的工作流程,同时也引入了一些新的功能。对于一些游戏开发初学者来说,他们可能会想知道,是否可以通过UE4的教程来学习UE5。在这里,我们将介绍一下这个问题。 首先,UE5和UE4之间确实存在一些相通

    2024年02月06日
    浏览(52)
  • Ue5 C++ metahuman

    参考官网: 创建MetaHuman | Epic Developer Community (epicgames.com) 参考: Quixel Bridge中的MetaHuman | Epic Developer Community (epicgames.com) 参考:导出到虚幻引擎5 | Epic Developer Community (epicgames.com) 参考:在Sequencer中使用MetaHuman | Epic Developer Community (epicgames.com) 待补充

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包