【UE4 C++】 SaveGame 存档/读档】的更多相关文章

创建 SaveGame 类 继承自 USaveGame UCLASS() class TIPS_API USimpleSaveGame : public USaveGame { GENERATED_BODY() public: UPROPERTY(EditAnywhere) FString PlayerName; UPROPERTY(EditAnywhere) float PlayerHealth = 0.f; UPROPERTY(EditAnywhere) FTransform PlayerT…
存档与读档功能 举例: 传统RPG游戏(仙剑.空之轨迹): 1.角色信息(生命值,等级) 2.道具信息(装备,药品) 3.场景信息(场景名称.角色坐标) 4.事件信息(任务相关) 关卡类游戏:关卡的通关情况 一些特殊的存档机制(漫漫长夜.亿万僵尸) Unity中使用的存档方式 一.PlayerPrefs:数据持久化方案 官方手册 原理:采用键值对的方式对数据进行存储---保存在本地文件(不同操作系统存储路径不同)中,然后程序可以根据这个名称取出上次保存的数值) 储存类型:可以存储Int, Flo…
此文内容源自siki学院视频,仅供学习!视频链接地址:http://www.sikiedu.com/course/129 工程使用Unity 2017.3.0f3 (64-bit) 老司机读博客,了解存档读档主体实现方式即可,仅供借鉴参考,菜鸟可以去文章结尾下载源码,或者去上面的链接直接观看视频..... 首先,创建一个Save类用于保存数据 [System.Serializable]public class Save{ public List<int> livingTargetPositio…
本文旨在于简要分析Unity中的两种存档机制,即:PlayerPrefs数据持久化方法及Serialization数据序列化方法 较比与源项目,我另加了JSON方法.XML方法等及一些Unity设置,更便于读者在使用中理解Unity的存档机制.核心脚本为Game.cs 源项目地址:How to Save and Load a Game in Unity - raywenderlich 个人项目地址:BattleSave - SouthBegonia 一.PlayerPrefs 数据持久化方法 存…
从外部读取shader文件: 先添加Shader类: 再创建vertexSource.txt和fragmentSource.txt两个文件: 如图填入shader: 在shader.h宣告: 在shader.cpp中从外部读档: #include "Shader.h" #include <iostream> #include<fstream> #include <sstream> #define GLEW_STATIC #include <GL…
详细可参考此篇博文: Unity序列化之XML,JSON--------合成与解析 简单例子(SiKi学院教程): using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class Save{ //怪物位置和类型 public List<int> livingTargetPositions = new List<int>(…
$ git config --global user.name "meng kai" $ git config --global user.email 363255751@qq.com $ mkdir learngit $ cd learngit $ pwd $ ls -ah $ git init $ git add readme.txt $ git commit -m "wrote a readme file" //第一次修改 -> git add ->…
UE4 概念知识 基础概念--文件结构.类型.反射.编译.接口.垃圾回收.序列化[导图] GamePlay架构[导图] 类的继承层级关系[导图] 反射机制 垃圾回收机制/算法 序列化 Actor 的生命周期 引擎运行流程 渲染流程 UE4 C++ 基础编程 UPROPERTY宏.属性说明符.元数据说明符 UFUNCTION宏.函数说明符.元数据说明符 基本数据类型.字符串处理及转换 枚举 Enum.结构体 Struct 容器--TArray 容器--TMap 容器--TSet Delegate…
大家好,老胡又和大家见面了.首先承认今天的博客有点标题党了,人生是没有存档,也没有后悔药的.有存档和后悔药的,那是游戏,不知道这是不是游戏让人格外放松的原因之一. 今天恰逢端午放假,就让我们来试着做一个小游戏吧,顺带看看备忘录模式是如何在这种情况下面工作的. 游戏背景 这是一个简单的打怪游戏,有玩家,有怪兽,玩家作为主角光环,有如下三个特殊能力 攻击怪兽有暴击几率 有几率回避怪兽攻击 可以自己治疗一定生命值 游戏实现 角色类 角色基类 首先是角色类,角色类提供玩家和怪兽最基本的抽象,比如血量.攻…
连连看大家应该都玩过,不多说直接上一个做好的界面截图吧,所有的功能都在上面的,要做的就只是如何去实现它们了. 差不多就是这个样子.先说一下大致的思路吧.首先编写基本的界面:把什么按钮啊,表格啊什么的都画上去.然后就是编写事件处理类,因为操作使用鼠标,所以加上鼠标监听.然后获取点击的坐标,根据坐标得出图片在数组中的位置.接着创建一个类,实现连连看消除的算法.这样就基本上可以开始游戏了.然后实现排行榜按钮和存档按钮的基本功能.最后加上一个线程类,用于处理倒计时.下面的介绍也基于这个顺序. 界面实现:…
虽然说已经是彻底放弃继续做那个demo了(代码结构混乱,想增加新功能非常的不方便),不过还是花了一点心血在里面的,毕竟这是我开始学习unity游戏制作的初衷,不过果然是学的越多越发现自己的不足... 虽然bug多多但还是把做出来的玩意放出来吧,不要对这玩意抱有任何可以玩的想法2333:https://pan.baidu.com/s/1mh7tcwC 先介绍一下使用的插件: MMD4Mecani:这个用于将mmd里的模型和动作导入到Unity中,不过好像精细模型的资源开销非常的大... Fairy…
在Qt中,我们有时候需要把一些参数写入xml文件,方便以后可以读入,类似一种存档读档的操作,例如,我们想生成如下的xml文件: <?xml version="1.0" encoding="UTF-8"?> <Parameters> <para1>1</para1> <para2>2</para2> <para3>3</para3> </Parameters>…
Json:使用固定的文本格式来存储和表示数据! 优点:简介,清晰,易于人的阅读和编写,易于机器的解析和生成. 类似:XML富文本形式 Json的键值对(类中的变量): Json的键值对是使用冒号来区分,冒号左边的部分是“键”,右边的部分是“值”:“键”都是使用引号包裹的字符串,每个键值对之间是以逗号分隔 简单的键值对:{ “name” : "小明" } 花括号:表示的是对象 花括号中的每一个键值对都表示这个对象里的变量和变量所对应的值.键名对应对象里的变量名,值对应这个变量名为键名的这…
1.什么是方法,什么是函数 class Foo: def chi(self): print("我是吃") @staticmethod def static_method(): pass @classmethod def class_method(cls): pass f = Foo() print(f.chi) # <bound method Foo.chi of <__main__.Foo object at 0x10f688550>> print(Foo.c…
题意:n*n的矩阵,m次赋值一个子矩阵为c,最后输出答案. n<=1e3 m<=1e5 解:倒序处理. 拆行处理. 每行内并查集维护未被赋值的地方. 这样每个地方最多被赋值一次,每次修改要访问n行,时间复杂度是O(n(n + m)) #include <cstdio> inline void read(int &x) { char c = getchar(); x = ; ') { c = getchar(); } ') { x = (x << ) + (x &…
结对项目-数独程序扩展 step1~step3:github:SE-Sudoku-Pair-master step4:github:SE-Sudoku-Pair-dev-combine step5:github:SE-Sudoku-Pair-dev-product Part1: PSP表-预估 PSP2.1 Personal Software Process Stages 预估耗时(分钟) Planning 计划 120 Estimate · 估计这个任务需要多少时间 5 Development…
IO流(序列流) IO流(序列流整合多个) IO流(内存输出流) IO流(内存输出流之黑马面试题) IO流(对象操作流ObjecOutputStream) IO流(对象操作流ObjectInputStream) IO流(对象操作流优化) IO流(加上id号) IO流(打印流的概述和特点) IO流(标准输入输出流概述和输出语句) IO流(两种方式实现键盘录入) IO流(修改标准输入输出流拷贝图片) IO流(随机访问流概述和读写数据) IO流(数据输入输出流) IO流(Properties的概述和作…
一.想法 Galgame 我们大概可以分为好用的 Galgame 和好玩的 Galgame,但是如果你把好玩的 Galgame 拿来用的话,有时候会十分让人着急.如果你躺在床上,一只手还在按压键盘实际上是很费神费力的,抓一只鼠标其实算是不错的解决方案,但是组合按键太少,难以高速解决快进快退存档读档等复杂的操作,在此之前我被安利的是使用 PPT 翻页笔,我 20 包邮买到的翻页笔有 Page Up,Page Down,Tab 和 Enter 功能,其中的激光可以拿来逗猫,也导致我电量耗的比较快(雾…
前言 前段时间由于公司的一款弱联网游戏急着上线,没能及时分享,现在基本做的差不多,剩下的就是测试阶段了(本来说元旦来分享一下服务器技术的).公司的这款游戏已经上线一年多了,在我来之前一直都是单机版本,由于人民群众的力量太强大,各种内购破解,刷体力,刷金币,刷钻石版本的出现,公司才决定将这款游戏转型为弱联网游戏,压制百分之八十的破解用户(毕竟原则上还是属于单机游戏,不可能做到百分之百的防破解),招了我这一个服务器来进行后台的开发.什么是弱联网游戏?在这之前我也没有做过弱联网游戏的服务器,但是按照我…
github 本次会议项目由PM召开,时间为5月26日晚上10点30分 时长25分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐标 bhlt 后端获取屏幕 dsz 存档读档功能优化 开会照片(拍摄者:木鬼) 燃尽图 工作报告和困难总结 一:助教提问(博客提问,回答为开会时讨论) 你们觉得这次测试过程中发现的最大的问题是什么呢?Re:Beta阶段测试报告 关于测试中发现的问题,关于程序的bug的话,就是上述的两个未解决问题,文件冲突的目前只能通…
github 本次会议项目由PM召开,时间为5月27日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐标 bhlt 后端获取屏幕 黑盒测试计划 dsz 存档读档功能优化 分辨率输入优化 开会照片(拍摄者:木鬼) 燃尽图 工作报告和困难总结 1.swoip任务实际上是一个大的任务,也是本阶段的主要目标之一,该任务将会持续一段时间. 2.大作业(研究方法论)的截止日期和考试(计网)临近,时间较紧,进度…
「JSOI2014」支线剧情2 传送门 不难发现原图是一个以 \(1\) 为根的有根树,所以我们考虑树形 \(\text{DP}\). 设 \(f_i\) 表示暴力地走完以 \(i\) 为根的子树的最小代价,那么 \(f_i\) 的计算就很显然了: \[f_i = \sum_{j \in son_i}f_j + s_j \times dis(i, j)\] \(s_i\) 表示以 \(i\) 为根的子树的叶子数. 我们再设一个 \(dp_i\) 表示在可以存档读档的条件下走完以 \(i\) 为根…
做游戏的时候常常会有数据配置或者存读档的需求,本文整理了常用的几种解决方案,分别是Unity自带的PlayerPrefs类,XML文件和Json文件. 一. PlayerPrefs 这是Unity自带的解决方案,会自动生成文件存储于本地,API简单,封装了繁琐的序列化反序列化过程,但他只支持几种基本数据类型,string.int.float,比较简单的数据存读取功能的话,用这个会比较方便. 示例: 早前做历史最高分数的功能,只用到了Get和Set便能实现,Get的第二个参数表示没有取到的默认值.…
1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对象操作静态属性: #只要是给'对象.属性名'赋值就相当于新建对象属性,而不是修改静态属性 #组合 #两个类的对象 #其中一个对象的属性是另一个对象 # class Course: # def __init__(self,name,price,period): # self.name = name #…
WTL_Freecell绿色版-用户手册 1.程序特点和使用环境介绍 (1).版本信息 WTL_Freecell-Release05-v1.3-20190129 (WTL空当接龙绿色版v1.3),By: ybmj@vip.163.com,http://blog.csdn.net/shuren8/.单击"帮助"菜单中的"关于",可以查看程序版本信息. 图1-1 WTL_Freecell"关于"对话框(本文图片都是Win10下截图) (2).版本主要…
原文链接 简介 对于很多人来说,ECS只是一个可以提升性能的架构,但是我觉得ECS更强大的地方在于可以降低代码复杂度. 在游戏项目开发的过程中,一般会使用OOP的设计方式让GameObject处理自身的业务,然后框架去管理GameObject的集合.但是使用OOP的思想进行框架设计的难点在于一开始就要构建出一个清晰类层次结构.而且在开发过程中需要改动类层次结构的可能性非常大,越到开发后期对类层次结构的改动就会越困难. 经过一段时间的开发,总会在某个时间点开始引入多重继承.实现一个又可工作.又易理…
两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameDataManager的Save函数,读档调…
在大部分游戏中,都有一个"存档点"的概念.比如,在挑战boss前,游戏会在某个地方存档,假设玩家挑战boss失败,则会从这个存档点開始又一次游戏.因此,我们能够将这个"存档点"当成是一个备忘录,我们将此时玩家全部的状态保存下来,以便之后的读取. 备忘录模式正是如此,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就能够将该对象恢复到原先的保存状态了. 一个简单的样例,如果玩家在暗黑破坏神中准备挑战Boss巴尔,玩家携带了10瓶药…
我算是个比较爱打单机游戏的人,同时也是个半吊子的编程爱好者,有的时候会去干一些修改存档的事儿.不过这篇博文不讲存档修改技术,只讲第一步:去哪找存档? 目标:在windows10系统下搜索到游戏的存档路径 实现原理: 几乎所有的游戏在创建新存档的时候都会产生一个新的存档文件,而windows系统会记录文件的修改时间,所以我们可以在存档完成的时候立刻检索所有刚刚修改过的文件,从里面用排除法找出存档文件.这个问题的核心在于我们需要一个可以快速检索最近修改过的文件的工具,而<everything>这个…
英文原文:http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx 最近在做一个前端页面,在各种浏览器上,各种差异,各种无赖.各种郁闷. 因为自己本机上的测试是IE10标准. 所以在其他浏览器上有多差异. 不过总算找到解决办法了. 先来个示例: <html> <head> <!-- Mimic Internet Explorer 7 --> <meta http-equiv="X-UA-Co…