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

Unity 2D RPG Kit 学习笔记

学习资料:

  • B站教学视频:https://www.bilibili.com/video/BV1dC4y1o7A5?p=1&vd_source=707ec8983cc32e6e065d5496a7f79ee6

  • 2D RPG Kit Documentation.pdf文档

在这里插入图片描述


1、2D RPG Kit Documentation文档

1.1、Scenes/TitleScreen 开始菜单工程

在这里插入图片描述

1.2、https://itch.io 素材网站

在这里插入图片描述

1.3、操作说明:

移动:使用箭头键或W、A、S、D来移动你的角色在游戏世界中。
互动:按下回车(或Enter)键与游戏中的物体和NPC互动。
打开菜单:按X键访问游戏菜单,在那里你可以管理你的物品栏, 查看角色状态,并调整设置。
取消/返回:使用Esc键取消操作或返回上一个菜单。

1.4、工程目录说明:

Animations
动画:此目录存放所有动画,包括玩家、战斗和特效的动画。角色战斗和敌人的特定动画被整齐地组织到子文件夹中。
Audio
音频:在这里找到所有的背景音乐和音效,旨在增强您的游戏氛围。
Editor
编辑器:包含扩展Unity检查器的脚本,用于各种组件,简化定制过程。
Fonts
字体:游戏中使用的字体的首选文件夹,确保游戏视觉呈现的一致性。
Materials
材料:包括精灵的材料,使光照效果能够为您的游戏视觉增添深度。
Prefabs
预制件:准备在游戏中使用的预制资产。
Battle
战斗:存储所有以战斗为中心的预制件,包括玩家角色、敌人和效果。这是您扩展游戏战斗系统的地方。
Items
物品:包含消耗品和装备的预制件。随着游戏的增长,您的物品列表也会增长。
Main
主要:包含场景管理的基本预制件,具有“主对象加载器”以实现跨场景的自动加载。
Objects
对象:收集通用预制件,便于场景增强。
Scenes
场景:按不同目的组织,便于访问和编辑。
Demo
演示:与演示游戏相关的所有场景都在这里,作为实际参考。
System Maps
系统地图:包括不可玩场景,如标题和游戏结束屏幕。
World Maps
世界地图:为您的游戏场景提供专用空间,具有复制和编辑的模板。
Scripts
脚本:2D RPG工具包的核心,包含所有使游戏栩栩如生的脚本。
Sprites
精灵:在这里,您将找到分类到子文件夹中的图形和UI元素,以便于导航。

1.5、Player Prefab 玩家预制体

  • 地址:Assets/2DRPGKit/Prefabs/Main
  • Player Controller
    玩家控制器脚本:附加到玩家预制件上,这个脚本允许开发者直接从Unity检查器调整玩家移动速度,提供了一个简单的方法来微调玩家的移动性。
  • 自动加载:无需手动将玩家预制件添加到每个场景中。"主对象加载器"预制件自动化了这个过程,确保玩家预制件始终被加载到每个场景中。
  • 在游戏过程中,您可以在Unity层次结构中的DontDestroyOnLoad -> Player(Clone)下找到玩家预制件。
  • 动画设置:玩家角色装备了四个方向的行走和闲置动画,通过Unity的混合树机制实现。这个设置位于Assets/2D RPG Kit/Animations/Player目录下。
  • 序列帧人物图片:Assets/2D RPG Kit/Sprites/Characters/Character1
  • Player Start作为玩家的起点位置

1.6、创建场景

  • 复制Scenes/Template Scene场景到新建的World Maps文件夹下
  • Camera相机:场景包括一个自定义相机设置,专为2D角色扮演游戏的视觉需求量身定制。这个相机确保你的场景从最佳视角观看。
  • Main Objects Loader
    主要对象加载器:此组件自动将必要的预制件(如玩家预制件)加载到您的场景中。它通过处理必要游戏对象的包含来简化场景设置,让您能够专注于设计场景的独特方面。
  • Tilemap
    瓦片地图组件:模板场景中预装了瓦片地图组件,可以立即进行关卡设计。瓦片地图是一个多功能的工具,用于创建多样化和复杂的景观、结构和内部,为您的创造力提供了广阔的画布。

1.7、Main Objects Loader

  • 是一个关键预制件,位于Assets/2D RPG Kit/Prefabs/Main目录下。其主要功能是确保将必要的预制件无缝集成到每个可玩场景中,自动化原本手动且重复的过程。
  • 配置:无需对“主对象加载器”进行大量配置。其默认设置旨在满足典型RPG场景的一般需求。然而,如果需要自定义,可以参考它加载的每个预制件的文档。

1.8、Tilemaps

在这里插入图片描述
在这里插入图片描述

  • Ground Layer 2
    在玩家下方:位于“Ground Layer 2”及以下的图块会在玩家精灵下方渲染,形成场景的基础。
  • Solid Layer 1
    在玩家之上:"Solid Layer 1"及以上的图块会挡住玩家精灵,非常适合用于树木和建筑物等头顶物体。
  • Background Layer
    背景层:融合了“视差效果”组件,实现了视差滚动,为场景背景增添了深度和动感,显著提升了沉浸感。

1.9、Camera

  • Camera Controller
    相机预制件配备了“相机控制器”脚本,这是一个专为动态场景集成设计的工具。主要功能包括边界计算和背景音乐设置,确保您的游戏场景在视觉上受到限制,在听觉上得到丰富
    自动瓦片地图分配:当使用提供的模板场景时,摄像机将自动识别并遵守场景的瓦片地图边界。此功能简化了初始设置,让您可以专注于场景设计,而无需担心摄像机的限制。
  • 瓦片地图用于摄像机
    从场景的瓦片地图中选择一个图层,然后将其拖动到附加到摄像机预制件的“Camera Controller”脚本的“Tilemap”字段中。这个动作使得脚本能够计算并执行地图边界,防止玩家越过指定的游戏区域。
    在这里插入图片描述
  • 声音:
    场景特定音乐:摄影机控制器脚本还便于为每个场景选择背景音乐。通过在“Audio Manager”中输入与曲目对应的数字,你可以定制听觉体验以匹配场景的氛围。
    “Audio Manager”是管理和播放游戏中的音乐和音效。它位于Assets/2D RPG Kit/Prefabs/Main目录下,预装了Assets/2D RPG Kit/Audio目录中各种免费使用的音频轨道和音效。

1.10 、Control Manager

  • Mobile选项
    一旦找到了“Control Manager”预制件,我们需要在它的检查器面板中找到一个名为“mobile”的复选框。这个复选框的作用是激活游戏内的触摸界面。当你在编辑器中勾选这个复选框后,你的游戏就会准备好接受触摸输入了。
    请注意,虽然在Unity编辑器中我们是通过鼠标来模拟触摸屏体验的,但这并不会影响最终在移动设备上的表现。勾选“mobile”复选框后,你就可以开始设计和测试适用于触摸屏的控制方式了。
    在Unity中导航到窗口导航栏,选择“移动输入”,然后选择“启用”。这一步对于确保Unity正确处理触摸输入至关重要,从而在移动设备上实现无缝控制。

1.11、Teleport to

“传送至”预制件是在2D RPG工具包中创建场景间无缝过渡的关键资产,有助于创建相互连接的游戏世界。位于Assets/2DRPGKit/Prefabs/Objects中,该预制件允许开发者定义场景内部和场景之间的特定入口和出口点,增强了游戏的导航流程和探索动态。
将Prefab放置在场景中:将“传送到”Prefab拖放到您的场景中。将其放置在希望建立另一个场景入口或出口的所需位置。

1.12、Game Manager

“游戏管理器”预制件是2D RPG工具包的核心,集中控制关键的游戏机制,如玩家统计数据、世界设置以及宝箱、任务和事件的管理。该预制件位于Assets/2D RPG Kit/Prefabs/Main目录下,对于在不同场景间保持游戏状态一致性至关重要,无需手动放置,这要归功于“主对象加载器”。

  • Character Management
    角色管理:在初始化部分,脚本维护了一个角色及其状态的列表。这些角色是玩家的潜在队友,被组织为“游戏管理器”预制体的子对象。这种设置允许在整个游戏中轻松跟踪和更新角色状态。
    在这里插入图片描述
  • Currently Active Menus
    当前激活的菜单:此功能通过允许开发者在任何给定时刻验证哪些菜单是激活的,来帮助调试,确保用户界面元素的行为符合预期。
  • Character Bools
    角色布尔值:对于调试玩家移动很有用,本节将跟踪是否存在任何当前阻止玩家移动的条件,便于快速识别和解决问题。
  • Items
    现有的游戏物品:脚本包含游戏中所有可用物品和装备的全面列表。开发者可以通过将创建的物品预制件拖放到列表中来添加到这个列表,确保这些物品在游戏中可以访问。

1.13、Character Status

“角色状态”脚本是2D RPG工具包中的一个多功能工具,旨在自定义可玩角色,允许详细定义他们的优势、劣势以及整体进步。该脚本附加到预定义的角色对象上,这些角色对象作为子对象存储在“游戏管理器”预制件下(资产/2D RPG工具包/预制件/主要)。这些角色,包括主角和潜在的队伍成员,在整个游戏中构成玩家团队的核心。

1.14、UI Management

  • 集中化UI控制:通过集中管理用户界面,"UI"预制件简化了开发过程,允许轻松实现和修改游戏中的UI元素。
  • 自动场景集成:多亏了“"Main Object Loader”,无需手动将“UI”预制件添加到每个场景中。它会自动加载,确保无论场景如何转换,UI始终可用。
  • 持久跨场景: "UI"预制件被设计为在场景加载时保持持久,在游戏过程中层次结构中的DontDestroyOnLoad -> UI(Clone)下可以找到。这种持久性是保持连贯用户体验的关键,菜单状态和UI设置在不同的游戏环境中保持不变。

1.15、Screen Fade Transitions

屏幕淡入淡出功能是2D RPG工具包中一个关键的视觉效果,它在场景转换过程中增强了玩家的体验。这个效果由屏幕淡入淡出脚本管理,该脚本附加到UI预制件的"Screen Fade"子对象上。这个脚本的多功能性使其可以应用于各种游戏情境中,提供一个平滑的过渡效果,显著提升游戏的视觉质量和感觉。

1.16、Dialog Manager

“对话管理器”脚本是2D RPG工具包的一个基本组成部分,旨在通过UI预制件中的“对话框”子对象来管理游戏中的对话。 这个功能对于讲故事至关重要,允许开发者向玩家展示对话、角色名称和其他叙事元素,丰富游戏的沉浸式体验。
对话管理器在如何向玩家展示对话方面提供了灵活性。开发者可以选择调整对话框及其文本组件的大小,以适应较长的对话或调整风格偏好,确保文本既易于阅读又美观。

1.17、 Menus, Shop, Inn, Rewards, and Saving

2D角色扮演游戏套装包括一套脚本,专门用于管理和显示各种游戏界面,如游戏菜单、商店、旅馆、奖励屏幕和保存功能。这些脚本对于向玩家展示准确的数据和选项至关重要,确保流畅直观的用户体验。

1.18、Creating and Managing Items in the 2D RPG Kit

在2D角色扮演游戏工具包中的物品作为消耗品和可装备物品,可以显著影响游戏玩法,为玩家提供治疗、战斗和角色增强等方面的资源
这些预定义的物品可以为开发者提供基础,以便他们能够根据自己的游戏需求进行定制和扩展,从而实现丰富多样的游戏道具系统。
还包括装备等

1.19、Chest Manager

箱子管理器:实施宝藏和奖励 “箱子”预制件和“箱子管理器”系统是2D RPG工具包的重要组成部分,旨在通过物品或金币奖励玩家,增强游戏世界内的探索和互动。箱子预制件存储在Assets/2D RPG Kit/Prefabs/Objects下,可以轻松添加到任何场景中,为玩家提供探索游戏环境每个角落和缝隙的具体激励。

1.20、NPC

2D RPG工具包包含了多种可重用的预制件,用于“店主”、“旅馆老板”和“NPC”,每个都能够在你的游戏中提供独特的互动体验。这些预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,可以直接加入到场景中,根据它们的设置提供对话、商店或旅馆互动。

1.21、Pushable Blocks

“可推动的方块”预制件提供了一种动态的方式,为您的游戏环境添加互动元素,允许玩家只需走进方块就可以推动它们。这个功能可以用来解决谜题,阻挡或打开路径,并为您的关卡增加一层互动性和挑战性。该预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,设计用于直接集成到任何场景中。

1.22、Battle Manager

“战斗管理器”预制件是2D RPG工具包的关键组件,集中控制回合制战斗机制、战斗菜单和其他相关设置。它存储在Assets/2D RPG Kit/Prefabs/Main中,有助于在游戏中实施战斗,无论是随机发生的还是由特定事件或碰撞触发的。

1.23、Battle Characters

在2D RPG Kit中,战斗角色在定义战斗动态方面起着至关重要的作用。 这些角色,无论是盟友还是对手,都由位于Assets/2D RPG Kit/Battle/Characters中的预制件(prefabs)表示。附加到这些预制件上的“Battle Character”脚本对于设置每个参与战斗的角色的属性和行为至关重要。

1.24、Developing Enemies for Battle in the 2D RPG Kit

在2D RPG工具包中,敌人是游戏战斗系统的重要组成部分,为玩家提供挑战,并丰富游戏的叙事和世界观。敌人预制件存储在Assets/2D RPG Kit/Battle/Enemies目录下,设计得非常灵活,允许开发者使用"Battle Character"脚本进行定制,以创建各种各样的对手。

1.25、Configuring Playable Characters for Battle

配置战斗中的可玩角色 在2D RPG Kit中,可玩角色是游戏战斗系统的核心,为玩家提供了一支需要在战斗中管理和控制的队伍。这些角色由位于Assets/2D RPG Kit/Battle/Characters中的预制件定义,并使用"Battle Character"脚本进行配置。与敌人不同,这些角色直接受到玩家决策的影响,从攻击到使用技能和物品。

1.26、Battle Effects

在2D RPG Kit中,视觉和音频效果在增强战斗体验方面发挥着重要作用,为技能使用和战斗中的其他动作提供了清晰且有力的反馈。这些效果以预制件的形式存储在Assets/2D RPG Kit/Battle/Effects文件夹中,它们的实现涉及视觉动画和音效,以创造一个动态且引人入胜的战斗氛围。

1.27、 Skills in the Battle

技能是任何角色扮演游戏(RPG)战斗机制中不可或缺的一部分,为玩家和敌人提供了除基本攻击之外的各种行动。在2D RPG工具包中,技能是直接通过附加到“战斗管理器”预制件的“战斗管理器”脚本来配置的。这种方法允许对游戏中使用的所有技能进行集中管理,便于轻松更新和添加。

1.28、Battle Areas

“战斗区域”预制件是2D RPG工具包中的一个强大工具,用于在游戏地图中创建玩家可以体验随机战斗遭遇的区域。该预制件位于Assets/2D RPG Kit/Prefabs/Objects目录下,可以轻松地集成到场景中,并根据所需的玩法动态进行配置。

1.29、 Quest Manager

任务是吸引玩家参与RPG游戏玩法的基本元素,为玩家提供推动故事发展的目标、挑战和奖励。2D RPG工具包通过"任务管理器"脚本促进任务管理,该脚本包含在"游戏管理器"预制件中。这个系统允许集中跟踪已完成和进行中的任务,确保玩家在游戏世界中导航时有一个连贯的进展。

1.30、Event Manager

“事件管理器”脚本位于“游戏管理器”预制件内,它在协调游戏中事件的进展中扮演着关键角色。它的功能类似于“任务管理器”,它提供了一个结构化的系统来跟踪进行中的和已完成的活动,确保叙事元素、过场动画和其他重要的游戏里程碑能够无缝整合。
访问事件管理器:在Assets/2D RPG Kit/Prefabs/Main中找到“游戏管理器”预制件。打开附加到它的“事件管理器”脚本,在Unity检查器中开始配置游戏事件。
如何实施“事件对象激活器”
● 放置预制件:将“事件对象激活器”预制件拖放到你的场景中。将其放置在对象的激活或停用将影响游戏玩法或叙事进程的位置。
● 配置激活条件:
1.激活/停用对象:首先,我们需要将目标游戏对象拖放到“激活对象”字段中。这个对象将根据事件的完成状态受到影响。
2.检查事件:接下来,我们需要指定触发游戏对象激活或停用的事件名称。这就像是我们设置一个开关,当某个特定的条件满足时,开关就会启动。
3.激活逻辑:现在,我们要决定是否在事件完成后激活游戏对象。如果想要对象在事件完成后激活,就勾选“完成后激活”。如果想要对象停用,就保持这个选项不勾选。
4.延迟激活/停用:有时候,为了让游戏更有叙事感或者戏剧效果,我们可能需要在事件发生后有一段延迟才激活或停用对象。这时候,我们就需要启用“激活前等待”,并设置一个“等待时间”,单位是秒。
● 使用“Event Object Activator"
1.叙事整合:使用激活器让游戏世界随着故事发展而演变。例如,在一个关键事件后解锁一个新区域,增强了进步和成就感。
2.给玩家的反馈:确保游戏环境的变化能够被玩家注意到。使用视觉或听觉提示来吸引玩家对新激活或停用的对象的注意。
● Common Events
该预制件存储在Assets/2D RPG Kit/Prefabs/Objects下,可以轻松地集成到任何场景中,以触发特定事件或环境变化,增强叙事和游戏体验。

1.31、Setting Up a Title Screen

“Title Scene”作为通往你的游戏的入口,为玩家提供开始新游戏或加载现有存档数据的初始选项。该场景位于Assets/2D RPG Kit/Scenes/System Maps中,对于设定正确的第一印象和无缝引导玩家进入游戏体验至关重要。

1.32、 Input Settings

在2D RPG工具包中,管理玩家输入对于创建流畅直观的游戏体验至关重要。Unity的输入管理器允许你定义和自定义游戏中各种动作的按钮映射,确保兼容键盘和摇杆控制。以下是2D RPG工具包提供的默认按钮设置的概述,以及你如何在Unity的输入管理器中确认或修改这些设置。
1.RPGMenuPC: 当你想在PC上打开游戏菜单时,只需按下键盘上的"X"键即可。
2.RPGMenuJoy: 如果你使用的是游戏手柄,那么按下手柄上的第3个按钮就可以打开游戏菜单。
3.RPGConfirmPC: 在PC上,当你需要与游戏中的物体进行互动时,按下键盘上的"Return"键即可。
4.RPGConfirmJoy: 使用游戏手柄时,按下手柄上的第1个按钮可以与游戏中的物体互动。
5.RPGCancelPC: 如果你想取消某个动作或关闭菜单,在PC上可以按下键盘上的"Escape"键。
6.RPGCancelJoy: 使用游戏手柄时,按下手柄上的第2个按钮可以取消动作或关闭菜单。
7.Horizontal: 这个指令用于水平移动玩家角色。你可以使用键盘上的左右箭头键,或者"A"和"D"键来进行操作。当然,如果你使用游戏手柄,也可以通过摇杆来实现水平移动。
8.Vertical: 这个指令用于垂直移动玩家角色。你可以使用键盘上的上下箭头键,或者"W"和"S"键来进行操作。同样地,使用游戏手柄时,摇杆也可以控制垂直移动。
9. “Edit” > “Project Settings” > “InputManager” 打开 Input Manager.


2、修改分辨率

CameraController.cs

// set the desired aspect ratio (the values in this example are
// hard-coded for 16:9, but you could make them into public
// variables instead so you can set them at design time)
float targetaspect = 16.0f / 9.0f;

3、TileMap操作

https://www.bilibili.com/video/BV1Mb411H7iV/?spm_id_from=333.337.search-card.all.click&vd_source=707ec8983cc32e6e065d5496a7f79ee6

3.1、制作Tile Palette,瓦片面板

  • 导入Tilemap的图片,比如
    在这里插入图片描述
  • 在图片里填写单元格的宽度
    在这里插入图片描述
  • 进入到Sprite Editor,需要在包管理器里安装Sprite的工具,在工具里选自动切割
  • 安装Tile Palette,在Tile Palette窗口中,创建New Palette,保存在一个文件夹中(后面生成的文件会比较多)
    在这里插入图片描述
  • 拖动之前创建的sprite图片,在tile palette窗口中,选择创建的目录,会自动生成Tile Palette,瓦片画板。
    在这里插入图片描述
    3.2、制作规则瓦片的动画
  • 新建规整瓦片
    在这里插入图片描述
  • 选择Animation模式,设置速度,拉入序列帧
    在这里插入图片描述
  • 建立Tile Palette,并拖入Rule Tile
    3.3、制作瓦片动画
  • 拖入序列帧到项目,并设置好图片大小
    在这里插入图片描述
  • 建立Animated Tile
    在这里插入图片描述
  • 投入序列帧到Animated Tile中
    在这里插入图片描述
  • 设置下速度为50左右
  • 建立Tile Palette,并拖入动画瓦片

4、改变默认的镜头模式,比如左右镜头移动,上下不移动

CameraController.cs
在这里插入图片描述

  • 第1条锁定了y轴的移动,第2条屏蔽了开始的镜头重定位

相关文章:

Unity 2D RPG Kit 学习笔记

学习资料: B站教学视频:https://www.bilibili.com/video/BV1dC4y1o7A5?p1&vd_source707ec8983cc32e6e065d5496a7f79ee6 2D RPG Kit Documentation.pdf文档 1、2D RPG Kit Documentation文档 1.1、Scenes/TitleScreen 开始菜单工程 1.2、https://it…...

联想天逸100使用笔记

文章目录 配置整理过程锁定功能键怎么弄? 翻出好多年不用的老电脑,饱受折磨,做个笔记。 之前不是我在使用,本身配置就不高,还被装了各种流氓软件,卡的几乎动不了。 配置 老电脑配置不行: i3 5005U 4G内存…...

【AI知识点】嵌入向量(Embedding Vector)

嵌入向量(Embedding Vector)是通过嵌入函数(Embedding Function)将复杂、高维或稀疏数据(如文本、图像、分类特征等)映射到低维、稠密空间中表示的向量。这种向量表示保留了原始数据的语义或结构信息&#…...

github命令行管理工具推荐

GitHub 管理工具推荐 背景 在使用 GitHub 管理仓库时,需要在 Web 端创建远程仓库,在本地创建本地仓库,然后再用 git remote add origin url 进行关联。这个过程相对繁琐,而且还有优化的空间。如果频繁创建仓库,就更能…...

【React】react项目中的redux使用

1. store目录结构设计 2. react组件中使用store中的数据——useSelector 3. react组件中修改store中的数据——useDispatch 4. 示例 react-basic\src\store\moduels\counterStore.js import { createSlice } from reduxjs/toolkitconst counterStore createSlice({name: cou…...

AJAX JSON 实例

AJAX JSON 实例 引言 AJAX(Asynchronous JavaScript and XML)和JSON(JavaScript Object Notation)是现代Web开发中常用的技术。AJAX允许在不重新加载整个页面的情况下,与服务器交换数据和更新部分网页内容。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易…...

java8:hutool:httputil.post读取配置项中的url

如果HttpUtil.post是静态方法,无法直接访问非静态的Value注入的属性。有以下几种解决办法: 构造函数注入 1. 首先将配置项的值通过Value注入到类的成员变量,然后在构造函数中将这个值传递给一个静态变量。 import org.springframework.bean…...

Springboot结合RabbitMQ

pom.xml <!--AMQP依赖&#xff0c;包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>application.yaml spring:rabbitmq:host: 127.0.0.1u…...

UNIAPP 动态菜单实现方法

1. 封装tabbar组件&#xff0c;组件UI使用uview的tabbar allList 定义出全部的菜单 list 定义当前用户能看到的菜单使用 u-tabbar 渲染出来 list 2. 权限判断处理 3. 使用方式 在 tab 页&#xff0c;底部放入该 tab 组件&#xff0c;并设置当前回显的页面&#xff0c;这里使用…...

windows C++-使用任务和 XML HTTP 请求进行连接(一)

本文会演示如何将 IXMLHTTPRequest2 和 IXMLHTTPRequest2Callback 接口与任务结合使用&#xff0c;以将 HTTP GET 和 POST 请求发送至通用 Windows 平台 (UWP) 应用中的 Web 服务。 通过将 IXMLHTTPRequest2 与任务组合在一起&#xff0c;你可以编写通过其他任务编写的代码。 例…...

HTB:Oopsie[WriteUP]

目录 连接至HTB服务器并开启靶机 1.With what kind of tool can intercept web traffic? 2.What is the path to the directory on the webserver that returns a login page? 3.What can be modified in Firefox to get access to the upload page? 4.What is the acc…...

【JAVA高级】如何使用Redis加锁和解锁(一)、Lua脚本执行原理及流程

文章目录 加锁方法一&#xff1a;使用SETNX命令结合EXPIRE命令方法二&#xff1a;使用SET命令的扩展参数&#xff08;NX和PX&#xff09;方法三&#xff1a;使用Lua脚本 解锁方法一&#xff1a;简单删除key方法二&#xff1a;使用Lua脚本验证后删除key Lua脚本的执行原理&#…...

2024年使用宝塔面板轻松部署Java Web

以下是2024年最新图形化部署Java Web项目到CentOS系统的手把手教程&#xff1a; 一、准备工作 确保服务器环境&#xff1a;确保你的服务器已经安装了CentOS 7操作系统&#xff0c;并且已经安装了宝塔面板。如果还没有安装&#xff0c;可以参考之前的教程进行安装。下载Java W…...

闯关训练一:Linux基础

闯关任务&#xff1a;完成SSH连接与端口映射并运行hello_world.py 1.创建开发机 2.SSH连接 3. VS-Code 连接 选择 Linux 平台 &#xff0c;输入密码 &#xff0c;选择进入文件夹 4.端口映射 按照下文安装Docs pip install gradio 运行server.py import gradio as grdef …...

鸿蒙NEXT开发-ArkTS(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

laravel延迟队列 取消未支付超时订单订单

1&#xff1a;生成待支付订单时&#xff0c;调用延迟队列 超过十五分钟未支付自动取消 use App\Jobs\endTask; use Illuminate\Support\Carbon; $resPost1 array("act" > "cy_order_cancel", "id" > $id); endTask::dispatch($resPos…...

解锁高效开发的秘密武器

在当今这个信息爆炸、技术日新月异的时代&#xff0c;编程工具的选择对于开发者来说至关重要。一个好的编程工具不仅能够简化代码编写&#xff0c;还能自动化任务、提升调试速度&#xff0c;甚至让团队协作更加顺畅。那么&#xff0c;哪款编程工具能让你的工作效率翻倍呢&#…...

【CSS】兼容处理

兼容前缀兼容查询 由于不同浏览器对CSS标准的支持程度不同&#xff0c;可能会导致在不同浏览器中出现样式差异。为了解决这个问题&#xff0c;需要采取一些措施来提高CSS的兼容性 兼容前缀 兼容前缀针对的浏览器-webkit-WebKit 内核浏览器&#xff0c;如&#xff1a;Safari 、…...

C语言线程

线程 多个进程中通过轮流使用CPU来完成自己的任务&#xff0c;如果多个进程的操作都一模一样那么CPU的开销就会很大&#xff0c;因为进程的地址都是私有的&#xff0c;如果CPU对相同的操作只执行一次&#xff0c;后面再遇到直接去获取即可&#xff0c;这样大大降低了CPU的开销…...

自闭症寄宿学校 vs. 日常教育:为孩子提供更多可能

在探索自闭症儿童的教育路径时&#xff0c;家长们往往面临一个重大的选择&#xff1a;是选择传统的日常教育环境&#xff0c;还是寻找专为自闭症儿童设计的寄宿学校&#xff1f;广州的星贝育园自闭症儿童寄宿制学校&#xff0c;以其独特的教育模式和全方位的关怀体系&#xff0…...

RxSwift系列(二)操作符

一、变换操作符&#xff1a;buffer、map、compactMap等 1.buffer buffer方法作用是缓冲组合&#xff0c;第一个参数是缓冲时间&#xff0c;第二个参数是缓冲个数&#xff0c;第三个参数是线程。缓存 Observable 中发出的新元素&#xff0c;当元素达到某个数量&#xff0c;或者…...

Gin框架简易搭建(3)--Grom与数据库

写在前面 项目地址 个人认为GORM 指南这个网站是相比较之下最为清晰的框架介绍 但是它在环境搭建阶段对于初学者而言不是很友好&#xff0c;尤其是使用mysql指令稍有不同&#xff0c;以及更新的方法和依赖问题都是很让人头疼的&#xff0c;而且这些报错并非逻辑上的&#xf…...

JavaScript模块化-CommonJS规范和ESM规范

1 ES6模块化 1.1 ES6基本介绍 ES6 模块是 ECMAScript 2015&#xff08;ES6&#xff09;引入的标准模块系统&#xff0c;广泛应用于浏览器环境下的前端开发。Node.js环境主要使用CommonJS规范。ESM使用import和export来实现模块化开发从而解决了以下问题&#xff1a; 全局作用…...

解决银河麒麟V10中的apt Lock异常

解决银河麒麟V10中的apt Lock异常 一、查找并杀掉apt进程二、删除锁文件三、重新尝试apt命令 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟V10的apt命令时&#xff0c;如果遇到lock异常&#xff0c;可以按以下步骤解决&…...

windows11环境安装lua及luarocks(踩坑篇)

一、lua安装及下载 官方地址&#xff1a; Lua Binaries Download 从这里就有坑了&#xff0c;下载后先解压win64_bin.zip&#xff0c;之后解压lib&#xff0c;用lib中的文件替换win64的&#xff0c;并把include文件夹复制过去&#xff0c;之后复制并重命名lua54&#xff0c;方…...

Glide基本用法及With方法源码解析

文章目录 引入优点 使用步骤导入依赖权限使用 其他用法占位符错误图片后备回调符圆角过渡动画大小调整gif缩略图 使用RequestOptions缓存机制设置缓存策略清理缓存 使用集成库OkHttpVolley with源码解析getRetrieverGlide.getinitializeGlide getRequestManagerRetriever Reque…...

html中的文本标签(含标签的实现案例)

目录 1.标题标签 2.标题标签的align属性 3.段落标签 4.水平线标签hr 5.换行标签br 6.文本样式标签font ​编辑7.文本格式化标签 8.文本语义标签 1&#xff09;时间time标签 2&#xff09;文本高亮Mark标签 3&#xff09;cite标签 9.特殊字符标签 10.图像标签img 附录&#xff…...

通信协议感悟

本文结合个人所学&#xff0c;简要讲述SPI&#xff0c;I2C&#xff0c;UART通信的特点&#xff0c;限制。 1.同步通信 UART&#xff0c;SPI&#xff0c;I2C三种串行通讯方式&#xff0c;SPI功能引脚为CS&#xff0c;CLK&#xff0c;MOSI&#xff0c;MISO&#xff1b;I2C功能引…...

IDEA几大常用AI插件

文章目录 前言列表GPT中文版TalkXBito AIIDEA自带的AI 前言 最近AI、GPT特别火&#xff0c;IDEA里面又有一堆插件支持GPT&#xff0c;所以做个专题比较一下各个GPT插件 列表 先看idea的plugins里支持哪些&#xff0c;搜索“GPT”之后得到的&#xff0c;我用下来感觉第一第二和…...

51单片机学习第六课---B站UP主江协科技

DS18B20 1、基本知识讲解 2、DS18B20读取温度值 main.c #include<regx52.h> #include"delay.h" #include"LCD1602.h" #include"key.h" #include"DS18B20.h"float T; void main () {LCD_Init();LCD_ShowString(1,1,"temp…...

炫酷网站界面设计/百度推广培训

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 在阅读本篇之前建议先学习&#xff1a; RNN 讲解 LSTM 讲解 3. GRU 3.1. 网络结构 GRU 是循环神经网络的一种&#xff0c;和 LSTM 一样&#xff0c;是为了解决长期依赖问题。GRU 单元结构如下。 图 1…...

wordpress图片属性添加/今天国际新闻最新消息10条

#include <iostream> using namespace std;string rand_str(const int len) /*参数为字符串的长度*/ {/*初始化*/string str; /*声明用来保存随机字符串的str*/char c; /*声明字符c&#xff0c;用来保存随机生成的字符*/int idx; …...

360度全景网站的公司/友情链接发布网

转自&#xff1a;https://blog.csdn.net/longfei_2010/article/details/79785320 1、编辑&#xff08;Editing&#xff09; Ctrl Space 基本的代码完成&#xff08;类、方法、属性&#xff09; Ctrl Alt Space 快速导入任意类 Ctrl Shift Enter 语句完成 Ctrl P 参数信息…...

上海设计网站公司/百度云超级会员试用1天

今天小编又要为大家推荐一款很特别的软件了&#xff0c;这款软件不管是玩法还是画面都没有办法可以挑剔&#xff0c;一起来看看吧&#xff01;编程一点通APP是一个免费的&#xff0c;能够让你在手机上学习编程知识的一款手机软件&#xff0c;这款软件能够让你在手机上对各种编程…...

韶关企业网站建设公司/精准营销名词解释

回到目录 一些概念 在大叔框架里总觉得缺点什么&#xff0c;在最近的项目开发中&#xff0c;终于知道缺什么了&#xff0c;分布式文件存储组件&#xff0c;就是缺它&#xff0c;呵呵&#xff0c;对于分布式文件存储来说&#xff0c;业界比较公认的是FastDFS组件&#xff0c;它自…...

免费做三级网站/百度学术论文查重免费

循环扇在美国是一个比较常见的家电产品&#xff0c;它的作用是通过循环空气来改善室内空气流通&#xff0c;使室内温度更加舒适。对于循环扇&#xff0c;美国人关注的主要点是性能、价格、耐用性和使用便捷性。 在性能方面&#xff0c;美国人更加关注循环扇的效率和噪音水平。他…...