Locker 是 Godot 的一个开源插件,它提供了一种快速且可扩展的方式来使用不同的策略保存和加载数据,并且具有开箱即用的 JSON 和加密功能。

一、软件介绍

文末提供下载

       Locker 插件是在 Godot 4.3 中创建的框架,旨在简化在 Godot 项目中保存、加载和管理数据的过程。该插件的主要目标之一是对用户自定义开放,允许使用不同的用户定义策略来访问数据。并且具有开箱即用的 JSON 和加密功能。

二、软件特征

  • 下面列出了此插件的主要功能。
  • 📪 数据收集和分发
  • 数据的收集和分发是该框架的主要特点。此功能是指此插件如何能够跟踪谁需要访问存储,并处理如何实现该访问。
  • 为了实现此功能,使用了两个重要概念: StorageManager icon StorageManagers 和 StorageManager icon StorageAccessors 。 StorageAccessors Nodes 能够处理对已保存数据的访问,同时 StorageManagers 负责管理需要访问该数据的数据 StorageAccessors 。
  • 为了能够作这些 StorageAccessors ,在激活插件时定义一个名为 GlobalStorageManager autoload 的 autoload 。这是一个单例,能够收集数据并将其发送给场景中的所有活动 StorageAccessors 用户。
  •  🗃 多个保存文件
  • 此插件提供的功能之一是可以使用多个保存文件来存储数据。这可以用于实现类似于某些游戏的系统,其中不同游戏玩法的数据存储在不同的保存文件中,通常称为文件 1、文件 2、文件 3 等。
  • 多保存文件系统还可以存储你想要的任何名称的文件。您甚至可以使用字符串化时间戳在不同时间存储不同的保存文件。
  • 🔪 分区中的分离
  • 除了允许分离多个保存文件中的数据外,Locker 插件还允许将保存文件内的数据分离到多个分区中。这可用于更好地组织数据,甚至在仅涉及几个分区的数据时使数据访问过程更快。
  • 例如,可以使用分区来分隔来自不同玩家的数据,以便在需要一个玩家的数据时,只需加载其分区。
  • ⏰ 异步作
  • 这个 Plugin 带来的另一个功能是将文件访问作作为异步函数处理。这允许游戏保持响应,即使有大量数据需要加载或保存。
  • 为了方便用户,在数据作初始化或完成时提供了方便的信号,以便可以在这些时间采取行动。
  • 为了便于与这些异步作进行交互,所涉及的方法被定义为协程,以便您可以仅在必要时使用 await 关键字等待其执行。
  •  📰 保存文件版本控制
  • Locker 插件还旨在促进将旧保存文件更新到新版本游戏的过程。
  • 这就是为什么 StorageAccessors 由 StorageAccessorVersions 组成 StorageManager icon 的原因。这些 StorageAccessorVersions 允许您定义不同的机制来处理跨不同版本的保存文件访问的数据,这可以促进在新游戏版本中更新保存数据方案的过程。
  • 🔑 可定制的访问策略
  • 这个插件的主要目标之一是对定制持开放态度。这就是实施这个 StorageManager icon AccessStrategy 概念的原因。
  • 这是一个 AccessStrategy 使用此 Plugin 抽象数据写入和读取方式的类。这种方法允许将来轻松实现 new AccessStrategies ,甚至由用户实现。
  • 对于此插件的默认用法,有两个内置 AccessStrategies 可用: 的 JSONAccessStrategy 和 EncryptedAccessStrategy .
  •  🔧 轻松配置
  • 有了所有这些功能,插件需要一个允许快速配置的地方。为此,使用了 Godot 内置的 ProjectSettings 。这意味着要快速设置此插件的首选配置,您只需转到 "addons/locker" path ProjectSettings 中的路径并调整所需的属性。

三、安装

      文末下载插件后,请务必在 Godot 设置中激活它,以便它可以自动将其自动加载添加到项目中并正常工作。

测试

       此项目具有单元测试(位于 test/unit 文件夹中)以验证其功能是否正确。这些测试是使用 @bitwes 的 GUT 插件编写的,该插件也可在 Godot 资产库中获得。

软件下载

夸克网盘分享

本文信息均来源于作者GitHub地址:https://github.com/locker-godot/locker

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(更新完)LPZero: Language Model Zero-cost Proxy Search from Zero

LPZero代码 摘要 神经架构搜索 (NAS) 有助于自动执行有效的神经网络搜索,同时需要大量的计算资源,尤其是对于语言模型。零样本 NAS 利用零成本 (ZC) 代理来估计模型性能,从而显着降低计算需求。然而,现有的 ZC 代理严重依赖于深…

Varlens(手机上的单反)Ver.1.9.3 高级版.apk

Varlens 是一款专业级手机摄影软件,旨在通过丰富的功能和高自由度参数调节,让手机拍摄效果媲美微单相机。以下是核心功能总结: 一、核心功能 专业拍摄模式 支持手动/自动/程序模式,可调节ISO、快门速度、EV、白平衡等参数27 提供…

Unity2017打包出来后的场景一片红

bug展示: 解决办法: Edit——Project Settings——Graphics——添加下面这俩Shader(用于UI展示)即可。

VS Code C++ 开发环境配置

VS Code 是当前非常流行的开发工具. 本文讲述如何配置 VS Code 作为 C开发环境. 本文将按照如下步骤来介绍如何配置 VS Code 作为 C开发环境. 安装编译器安装插件配置工作区 第一个步骤的具体操作会因为系统不同或者方案不同而有不同的选择. 环境要求 首先需要立即 VS Code…

html-表格标签

一、表格标签 1. 表格的主要作用 表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据 的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 总…

ROS2-话题学习

强烈推荐教程: 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

Java在小米SU7 Ultra汽车中的技术赋能

目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…

Oracle RAC配置原理详解:构建高可用与高性能的数据库集群

在现代企业级应用中,数据库的高可用性和高性能是至关重要的。Oracle Real Application Clusters(RAC)是Oracle数据库提供的一种集群解决方案,能够将多个数据库实例部署在不同的服务器上,实现负载均衡和故障切换&#x…

ESP8266TCP客户端(单连接TCP Client)

单连接TCP Client 电脑作为服务器,8266作为客户端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相应:ok 2.连接路由器 ATCWJAP“SSID”,“password” //SSID就是wifi的名字, password WIFI密码 响应&#xff…

【Linux】软硬连接与动静态库

🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.软硬连接02.动静态库静态库(Static Library)动态库(Dynamic Library) 03.动态库加载 01.软硬连接 我们先看一下它的用法 这个是…

关于Springboot 应配置外移和Maven个性化打包一些做法

期望达到的效果是每次更新服务器端应用只需要更新主程序jar 依赖jar单独分离。配置文件独立存放于文件夹内,更新程序并不会覆盖已有的配置信息。 一、配置外移 1、开发环境外移 做法:在项目同级或者上级创建config文件夹放置配置文件,具体m…

阿里云操作系统控制台——解决服务器磁盘I/O故障

目录 引言 需求介绍 操作系统使用实例 获得的帮助与提升 建议 引言 你的云服务器是否遇到过系统响应变慢、服务超时,或者进程卡顿、磁盘空间不足、系统日志频繁告警的问题?这些情况在日常运维中并不少见,尤其是在 高负载或资源紧张时&a…

【英伟达AI论文】多模态大型语言模型的高效长视频理解

摘要:近年来,基于视频的多模态大型语言模型(Video-LLMs)通过将视频处理为图像帧序列,显著提升了视频理解能力。然而,许多现有方法在视觉主干网络中独立处理各帧,缺乏显式的时序建模,…

蓝桥杯备考:图论初解

1:图的定义 我们学了线性表和树的结构,那什么是图呢? 线性表是一个串一个是一对一的结构 树是一对多的,每个结点可以有多个孩子,但只能有一个父亲 而我们今天学的图!就是多对多的结构了 V表示的是图的顶点集…

记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)一、微信小程序注册摘要1.1 注册流程要点 二、小程序发布流程三、下载工具 记录小白使用 Cursor 开发第一个微信小程序&#xff08…

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…

【消息队列】数据库的数据管理

1. 数据库的选择 对于当前实现消息队列这样的一个中间件来说,具体要使用哪个数据库,是需要稍作考虑的,如果直接使用 MySQL 数据库也是能实现正常的功能,但是 MySQL 也是一个客户端服务器程序,也就意味着如果想在其他服…

【HarmonyOS Next】鸿蒙加固方案调研和分析

【HarmonyOS Next】鸿蒙加固方案调研和分析 一、前言 根据鸿蒙应用的上架流程,本地构建app文件后,上架到AGC平台,平台会进行解析。根据鸿蒙系统的特殊设置,仿照IOS的生态闭环方案。只能从AGC应用市场下载app进行安装。这样的流程…

nuxt2 打包优化使用“compression-webpack-plugin”插件

在使用 Nuxt.js 构建项目时,为了提高性能,通常会考虑对静态资源进行压缩。compression-webpack-plugin 是一个常用的 Webpack 插件,用于在生产环境中对文件进行 Gzip 压缩。这对于减少网络传输时间和提高页面加载速度非常有帮助。下面是如何在…

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …