UE求职Demo开发日志#28 初期几个流程的实现

1 第一小节流程梳理

进入游戏-->

弹出几个文本框介绍背景-->

接取任务收集资源->

打怪获得源能结晶-->

场景里获得一些金属碎片-->

用源能和金属修复合成台-->

完成第一个任务-->

接第二个任务,打带精英怪的一波(小怪1换颜色,放大,调数值)-->

获得进阶源能的材料-->

材料够了可升级源能结晶-->

(可选)合成装备-->

任务三找到解密点并击败Boss-->

回地图解密-->

遇到Boss-->打过获得高级源能材料,第一小节流程结束,没打过回去补做装备

2 分析任务具体需求

1.做用户界面,文本框模板,对话完调用接任务函数

2.当前追踪的任务提示UI

3.修复合成台扣材料,然后解锁,能够自由开关面板,这时更新存储文件,标记任务1完成,并标记怪物的生成模式为可生成精英怪,解锁地图内的新区域以开启解密。

4.接任务二,目标:制作某某装备,但是某个关键材料精英怪掉落,合成装备完成任务,不计入关键任务 

5.未完待续

3 具体实现

3.1 创建TextBox用户界面并写好点击逻辑

OnClickTalkBox具体逻辑是最后一段话看完就接任务1,没有就继续对话:

3.2 创建一个Save类记录游戏流程

UCLASS()
class ARPG_CPLUS_API UGameFlowControlSaveData : public USaveGame
{
	GENERATED_BODY()
public:
	UPROPERTY(EditAnywhere,BlueprintReadWrite,Category="GameFlowControl")
	TArray<bool> GameFlowKeyPoints{false};
	UFUNCTION(BlueprintCallable)
	TArray<bool> GetGameFlowKeyPoints();
	UFUNCTION(BlueprintCallable)
	void SetGameFlowKeyPoints(TArray<bool> InGameFlowKeyPoints);
};

 在GameInstance中管理:

//Manage GameFlow
bool UMyGameInstance::SaveGameFlow()const
{
	UGameFlowControlSaveData* Save= Cast<UGameFlowControlSaveData>(UGameplayStatics::CreateSaveGameObject(UGameFlowControlSaveData::StaticClass()));
	if (Save)
	{
		Save->SetGameFlowKeyPoints(GameFlowKeyPointsInGameInstance);
		if (UGameplayStatics::SaveGameToSlot(Save, FString("GameFlowControlSaveData"), 0))
		{
			UE_LOG(LogTemp, Warning, TEXT("UGameFlowControlSaveData::-->Save Success"));
			return true;
		}
		UE_LOG(LogTemp, Warning, TEXT("UGameFlowControlSaveData::-->Save Failed"));
	}
	return false;
}

bool UMyGameInstance::LoadGameFlow()
{
	bool bIsExistSaveData=UGameplayStatics::DoesSaveGameExist(FString("GameFlowControlSaveData"),0);
	
	if(bIsExistSaveData)
	{
		UGameFlowControlSaveData* Save=Cast<UGameFlowControlSaveData>(UGameplayStatics::LoadGameFromSlot(FString("GameFlowControlSaveData"), 0));
		GameFlowKeyPointsInGameInstance=Save->GetGameFlowKeyPoints();
		UE_LOG(LogTemp,Warning,TEXT("UGameFlowControlSaveData-->Loaded Success"));
		return true;
	}
	SaveGameFlow();
	UE_LOG(LogTemp,Warning,TEXT("UGameFlowControlSaveData-->Loaded Fail"));
	return false;
}

3.3 若KeyPoint1为false并且为首次进入游戏,则执行对话接任务

在进入关卡时判断,若为第一次就把输入模式设为UIOnly

		if(MyGameInstance->bIsFirstInGameInGameInstance)
		{
			UE_LOG(LogTemp,Warning,TEXT("MyGameInstance->bIsFirstInGameInGameInstance is true"));
			MyGameInstance->bIsFirstInGameInGameInstance=false;
			if(MyGameInstance->GameFlowKeyPointsInGameInstance.Num()==0)
			{
				MyGameInstance->GameFlowKeyPointsInGameInstance.Add(false);
				MyGameInstance->SaveGameFlow();
			}
			MyGameInstance->GameFlowKeyPointsInGameInstance[0]=false;//保证第一次进入时都是false
			AMyPlayer* MyPlayerRef=Cast<AMyPlayer>(GetPawn());
			if(MyPlayerRef)
			{
				MyPlayerRef->OnFirstInGame();
			}
			bShowMouseCursor=false;
			const FInputModeUIOnly Input{FInputModeUIOnly()};
			SetInputMode(Input);
		}

3.4 当前任务提示 

        设置一个面板复制之前任务栏测试的板块,重写一个更新函数,传入参数为当前锁定的任务id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/967938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】从瀑布开发到敏捷开发

引言 软件开发方法论是指导团队如何规划、执行和管理软件项目的框架。随着软件行业的不断发展&#xff0c;开发方法论也在不断演进。从传统的瀑布开发到现代的敏捷开发&#xff0c;软件开发方法论经历了深刻的变革。本文将详细探讨瀑布开发和敏捷开发的定义、特点、优缺点以及…

Docker安装常用软件说明

1.总体步骤 2.安装tomcat docker run -d -p 8080:8080 --name tomcat1 tomcat:11.0.8 访问tomcat猫首页 出现404 这是正常情况 Docker 默认采用的是 NAT 网络模式&#xff0c;所以会自动创建 IPtable 规则并自动开放端口&#xff0c;所以无需考虑防火墙问题 新版Tomcat已经…

Node.js笔记入门篇

黑马程序员视频地址&#xff1a; Node.js与Webpack-01.Node.js入门 基本认识 概念 定义&#xff1a;Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本 作用&#xff1a;使用Node.js 编写服务器端程序 ✓ …

以简单的方式过一生

这本书大体讲述了三方面的内容&#xff1a;工作、生活、人际交往。我目前工作方面的认知需求比较大&#xff0c;就把工作部分的内容看了一下&#xff0c;其他两个方面就略看了&#xff0c;在这里就不展开了。 一、成为结果导向的人&#xff1a; 如何让自己在职场上成为明确结果…

软件工程教育的革命:AI辅助学习与实践

软件工程教育正面临着巨大的挑战。传统的教学模式往往以理论讲解为主&#xff0c;实践机会不足&#xff0c;导致学生难以将理论知识转化为实际技能。此外&#xff0c;繁琐的代码编写和项目搭建过程也常常耗费学生大量时间和精力&#xff0c;影响学习效率。为了解决这些问题&…

访问Elasticsearch服务 curl ip 端口可以 浏览器不可以

LINUX学习 在虚拟机上面的linux上面用docker 部署Elasticsearch项目后&#xff0c;在linux系统内部用curl ip 端口地址的形式可以访问到Elasticsearch。可以返回数据。 但是在本机的浏览器中输入ip 端口&#xff0c;会报错&#xff0c;找不到服务。 ping 和 trelnet均不通。 …

C++引用深度详解

C引用深度详解 前言1. 引用的本质与核心特性1.1 引用概念1.2 核心特性 2. 常引用与权限控制2.1 权限传递规则2.2 常量引用2.3 临时变量保护1. 样例2. 样例3. 测试 三、引用使用场景分析3.1 函数参数传递输出型参数避免多级指针高效传参 3.2 做函数返回值正确使用危险案例 4. 性…

网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级

今年农历新年期间&#xff0c;全球AI领域再度掀起了一波革命性浪潮&#xff0c;国产通用大模型DeepSeek凭借其强大的多场景理解与内容生成能力迅速“出圈”&#xff0c;彻底改写全球人工智能产业的格局。 作为国内领先的数字内容风控服务商&#xff0c;网易易盾一直致力于探索…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue旅游管理网站

开题报告 本论文探讨了一款采用现代Web开发技术构建的台州市旅游综合信息与服务平台的设计与实现。该系统基于SpringBoot框架&#xff0c;以其轻量级、快速开发和强大的企业级应用支持能力为核心后端技术支撑&#xff0c;结合Vue.js前端框架及ElementUI组件库&#xff0c;为用…

python-leetcode-寻找峰值

162. 寻找峰值 - 力扣&#xff08;LeetCode&#xff09; class Solution:def findPeakElement(self, nums: List[int]) -> int:left, right 0, len(nums) - 1while left < right:mid left (right - left) // 2if nums[mid] < nums[mid 1]:left mid 1else:right …

2.11学习记录

web——CTFHub XSS学习 学习资料&#xff1a;xss&#xff08;跨站攻击&#xff09; 原理 1.黑客发送带有xss恶意脚本的链接给用户 2.用户点击了恶意链接&#xff0c;访问了目标服务器&#xff08;正常的服务器&#xff09; 3.目标服务器&#xff08;正常的服务器&#xff09…

macOS 上部署 RAGFlow

在 macOS 上从源码部署 RAGFlow-0.14.1&#xff1a;详细指南 一、引言 RAGFlow 作为一款强大的工具&#xff0c;在人工智能领域应用广泛。本文将详细介绍如何在 macOS 系统上从源码部署 RAGFlow 0.14.1 版本&#xff0c;无论是开发人员进行项目实践&#xff0c;还是技术爱好者…

ASP.NET Core WebSocket、SignalR

目录 WebSocket SignalR SignalR的基本使用 WebSocket WebSocket基于TCP协议&#xff0c;支持二进制通信&#xff0c;双工通信。性能和并发能力更强。WebSocket独立于HTTP协议&#xff0c;不过我们一般仍然把WebSocket服务器端部署到Web服务器上&#xff0c;因为可以借助HT…

【蓝桥杯嵌入式】4_key:单击+长按+双击

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 1、电路图 将4个按键的引脚设置为input&#xff0c;并将初始状态设置为Pull-up&#xff08;上拉输入&#xff09; 为解决按键抖动的问题&#xff0c;我们…

五、AIGC大模型_01大模型基础知识

1、基本概念 1.1 定义 目前&#xff0c;谈到大模型&#xff0c;通常都指的是大语言模型&#xff08;LLMs&#xff0c;即&#xff1a;Large Language Models) 大语言模型是具有大规模参数和复杂计算结构的深度学习模型&#xff0c;通常由深度神经网络构建而成&#xff0c;参数…

微服务与网关

什么是网关 背景 单体项目中&#xff0c;前端只用访问指定的一个端口8080&#xff0c;就可以得到任何想要的数据 微服务项目中&#xff0c;ip是不断变化的&#xff0c;端口是多个的 解决方案&#xff1a;网关 网关&#xff1a;就是网络的关口&#xff0c;负责请求的路由、转发…

Spring Cloud工程完善

目录 完善订单服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 完成商品服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 远程调用 需求 实现 1.定义RestTemplate 2.修改order-service中的OrderService 测试运行 Rest…

网络安全网格架构(CSMA) 网络安全框架csf

CSRF:Cross Site Request Forgy&#xff08;跨站请求伪造&#xff09; 用户打开另外一个网站&#xff0c;可以对本网站进行操作或攻击。容易产生传播蠕虫。 CSRF攻击原理&#xff1a; 1、用户先登录A网站 2、A网站确认身份返回用户信息 3、B网站冒充用户信息而不是直接获取用…

数据库系统课设——教务管理系统

目录 前言 一、总体设计 1、知识背景 2、模块介绍&#xff08;需求分析&#xff09; 3、设计步骤 3.1 页面原型设计 3.2 前端页面开发 3.3 后端接口开发 3.4 数据库设计 二、详细设计 1、 系统功能模块划分 2、 数据流程图 3、数据库概念结构设计 4、 数据库逻辑…

论文概览 |《Cities》2024.12 Vol.155(上)

本次给大家整理的是《Cities》杂志2024年12月第152期的论文的题目和摘要&#xff0c;一共包括73篇SCI论文&#xff01;由于论文过多&#xff0c;我们将通过两篇文章进行介绍&#xff0c;本篇文章介绍第1--第30篇论文! 论文1 Digital economy and risk response: How the digita…