非官方 Bevy 作弊书00-01

源自 Introduction - Unofficial Bevy Cheat Book

有道软件翻译为主,手工调整润色,希望对像我这样的 英语不好的 Bevy 初学者有用


Introduction - Unofficial Bevy Cheat Book

非官方 Bevy 作弊书

这是Bevy 游戏引擎的参考书 (GitHub)。

它旨在以简洁的方式教授 Bevy 概念,帮助您提高工作效率并发现您需要的知识。

本书汇集了官方文档中通常未涵盖的大量社区智慧,使您无需再为其他人已经解决的问题而苦苦挣扎!

虽然它的目标是详尽无遗,但记录整个游戏引擎是一项艰巨的任务。我将时间集中在我认为社区最需要的事情上。

因此,无论是基础知识还是高级主题,仍然存在很多遗漏。尽管如此,我相信这本书将成为您的宝贵资源!

欢迎!愿这本书为您服务!

(别忘了 

 Star

 这本书的GitHub 存储库,并考虑捐赠)

如何使用这本书

本书的页面并不是为了按顺序阅读而设计的。每个页面涵盖一个独立的主题。随意跳到您感兴趣的任何内容。

如果您有想要了解的特定主题,可以从目录(侧边栏)或使用搜索功能(位于顶部栏中)找到它。

章节概述页面将让您大致了解本书的结构。

每个页面上的文本都会链接到其他页面,您可以在其中了解文本中提到的其他内容。这可以帮助你快速浏览这本书。

如果您是 Bevy 新手,或者想要更多引导体验,请尝试 引导游览教程。它将帮助您按照对学习有意义的顺序浏览本书,从初级主题到高级主题。

Bevy内置页面是一份简洁的备忘单,其中包含有关 Bevy 提供的类型和功能的有用信息。

Bevy 拥有丰富的官方代码示例。

查看bevy-assets,获取社区制作的资源。

我们的社区非常友好和乐于助人。欢迎加入Bevy Discord聊天、提问或参与该项目!

如果您想查看一些使用 Bevy 制作的游戏,请参阅itch.io 或Bevy Assets。

这本书是最新的吗?

Bevy 的开发速度非常快,大约每三个月就会发布新的主要版本。每个版本都会带来很多变化,因此保持本书的更新可能是一个重大挑战。

为了减轻维护负担,该项目的政策是本书可能包含针对不同版本的 Bevy 的内容。但是,不允许在同一页面上混合 Bevy 版本。

在每个页面的顶部,您将看到上次更新的版本。该页面上的所有内容必须与所述 Bevy 版本相关。

支持我

GitHub 赞助商 帕特隆 比特币

如果您喜欢这本书,请考虑赞助我。谢谢你!❤️

我愿意不断改进和维护这本书,为Bevy社区提供高质量的独立学习资源。

支持贝维

GitHub 赞助商

如果您喜欢 Bevy 游戏引擎,您应该考虑向该项目捐款。

执照

版权所有 © 2021-2023 Ida (IyesGames)

本书中的所有代码均在 MIT-0 许可证下提供。您也可以选择在常规 MIT 许可证下使用它。

本书的文本是在 CC BY-NC-SA 4.0下提供的。

例外:如果用于“官方 Bevy 项目”贡献的目的,则可以在MIT-0 许可证下使用本书的全部内容。

“官方 Bevy 项目”定义为:

  • Git 存储库的内容托管在https://github.com/bevyengine/bevy
  • Git 存储库的内容托管在https://github.com/bevyengine/bevy-website
  • bevyengine.org网站上公开可见的任何内容

一旦您的贡献被上游接受,MIT-0 许可证就会生效。

为向官方 Bevy 项目做出贡献而创建的 GitHub Forks 和 Pull 请求具有以下许可例外:只要工作等待上游审核(Pull 请求打开),即可免除 CC BY-NC-SA 4.0 的归属要求)。如果上游拒绝您的贡献,您将有 1 个月的时间来遵守 CC BY-NC-SA 4.0 许可证的完整条款或删除您的作品。如果上游接受您的贡献,则适用 MIT-0 许可证。

贡献

本书的开发托管在GitHub上。

请向 GitHub 提交问题以获取任何错误/令人困惑/误导性的信息,以及您想要添加到书中的新内容的建议。

贡献被接受,但有一些限制。

有关所有详细信息,请参阅贡献部分。

稳定性警告

Bevy 仍然是一个新的实验性游戏引擎!2020年8月才公开!

虽然改进正在以令人难以置信的速度发生,而且开发也很活跃,但 Bevy 还没有时间成熟。

没有稳定性保证,并且经常发生重大变化!

通常,适应新版本的变化并不难,但您已被警告!


Chapter Overview - Unofficial Bevy Cheat Book

章节概述

Bevy内置页面是一份简洁的备忘单,其中包含有关 Bevy 提供的类型和功能的有用信息。

Bevy教程章节提供了您可以从头到尾遵循的教程/指南。

Bevy Cookbook提供更多独立/范围狭窄的示例,教您如何解决特定问题。

本书的其余部分旨在作为参考,涵盖与 Bevy 合作的不同方面。请随意浏览本书,了解您感兴趣的任何主题。在本书的每一页上,每当提到其他主题时,都会链接到相关页面或官方 API 文档。

如果您想要引导式体验,或按相对难度(从初级到高级)浏览本书,请尝试引导式教程页面。它以逻辑顺序推荐学习主题。

本书有以下一般章节:

  • Bevy 设置提示:项目设置建议、工具和插件推荐
  • 常见陷阱:社区遇到的常见问题的解决方案
  • Bevy on Different Platforms:有关使用特定平台/操作系统的信息

要了解如何在 Bevy 中编程,请参阅以下章节:

  • Bevy核心编程框架:ECS+App框架,一切的基础
  • 编程模式:固执己见的建议、模式、习语
  • Bevy Render (GPU) Framework:使用 GPU 和 Bevy 渲染

以下章节涵盖了 Bevy 的各个功能领域:

  • 游戏引擎基础知识
  • 一般图形功能
  • 使用 2D
  • 使用 3D
  • 输入处理
  • 窗口管理
  • 资产管理
  • 声音的
  • Bevy UI 框架

List of Bevy Builtins - Unofficial Bevy Cheat Book

非官方 Bevy 作弊书

Bevy 内置列表

此页面是 Bevy 提供的所有重要内容的快速浓缩列表。

  • 系统参数
  • 资产
  • 文件格式
  • GLTF 资产标签
  • 着色器导入
  • wgpu后端
  • 时间表
  • 运行条件
  • 插件
  • 捆绑
  • 资源(配置)
  • 资源(引擎用户)
    • 主世界
    • 渲染世界
    • 低级wgpu访问
  • 资源(输入)
  • 事件(输入)
  • 事件(引擎)
  • 事件(系统/控制)
  • 成分

系统参数

这些都是可以用作系统参数的特殊类型。

(API文档中列出)

在常规系统中:

  • Commands:使用命令操作ECS
  • Query(最多可包含 15 种类型的元组):访问实体和组件
  • Res:对资源的共享访问
  • ResMut:对资源的独占(可变)访问
  • Option>:共享访问可能不存在的资源
  • Option>:对可能不存在的资源的独占(可变)访问
  • Local:系统本地数据
  • EventReader:接收事件
  • EventWriter:发送事件
  • &World:只读直接访问ECS World
  • ParamSet<...>(最多 8 个参数):解决不兼容的系统参数之间的冲突
  • Deferred:自定义“延迟突变”,类似于Commands,但用于你自己的东西
  • RemovedComponents: 去除检测
  • Gizmos:一种在屏幕上绘制线条和形状以用于调试和开发目的的方法
  • Diagnostics:一种向 Bevy报告测量/调试数据以进行跟踪和可视化的方法
  • SystemName:系统的名称(字符串),可能对调试有用
  • ParallelCommandsCommands:当您自己进行并行处理时可以使用抽象
  • WorldId:系统运行所在世界的世界ID
  • ComponentIdFor:获取给ComponentId定组件类型的
  • Entities:低级 ECS 元数据:所有实体
  • Components:低级 ECS 元数据:所有组件
  • Bundles:低级 ECS 元数据:所有捆绑包
  • Archetypes:低级 ECS 元数据:所有原型
  • SystemChangeTick:低级 ECS 元数据:用于更改检测的勾选
  • NonSend:对非Send(仅限主线程)数据的共享访问
  • NonSendMut:对非Send(仅限主线程)数据的独占访问
  • Option>:共享访问可能不存在的非(仅限主线程)数据Send
  • Option>:独占访问可能不存在的非(仅限主线程)数据Send
  • StaticSystemParam:通用系统抽象的帮助器,以避免生命周期注释
  • 包含任何这些类型的元组,最多 16 个成员

在专有系统中:

  • &mut World:完全直接访问ECS世界
  • Local:系统本地数据
  • SystemState

    :模拟常规系统,让您轻松访问世界数据。 P是系统参数。

  • QueryState:允许您对世界执行查询,类似于Query 常规系统。

您的函数最多可以有 16 个参数。如果您需要更多,请将它们分组到元组中以解决限制。元组最多可以包含 16 个成员,但可以无限嵌套。

在提取计划期间运行的系统还可以使用 Extract, 来访问来自主世界而不是渲染世界的数据。T可以是任何只读系统参数类型。

资产

(有关使用资产的更多信息)

这些是 Bevy 默认注册的资产类型。

  • Image:像素数据,用作2D和3D渲染的纹理;还包含SamplerDescriptor纹理过滤设置
  • TextureAtlas:2D“Sprite Sheet”定义单个较大图像中的子图像
  • Mesh:3D 网格(几何数据),包含顶点属性(如位置、UV、法线)
  • Shader:GPU 着色器代码,采用受支持的语言之一 (WGSL/SPIR-V/GLSL)
  • ColorMaterial:基本“2D 材质”:包含颜色,可选图像
  • StandardMaterial:支持基于物理的渲染的“3D 材质”
  • AnimationClip:单个动画序列的数据,可与AnimationPlayer
  • Font:用于文本渲染的字体数据
  • Scene:由要实例化的文字 ECS 实体组成的场景
  • DynamicScene:由动态类型和反射组成的场景
  • Gltf: GLTF Master Asset : GLTF 文件全部内容的索引
  • GltfNode:场景中的逻辑 GLTF 对象
  • GltfMesh:逻辑GLTF 3D模型,由多个GltfPrimitives组成
  • GltfPrimitive:要渲染的单个单元,包含要使用的网格和材质
  • AudioSource:音频数据bevy_audio
  • FontAtlasSet:(内部用于文本渲染)
  • SkinnedMeshInverseBindposes:(骨骼动画内部使用)

文件格式

这些是 Bevy 支持的资产文件格式(资产加载器)。可以使用货物功能 cargo features可以使用货物功能启用/禁用对每一项的支持。有些是默认启用的,有些则不是。

图像格式(作为资产加载Image):

格式 Cargo特征 默认? 文件扩展名
PNG "png" 是的 .png
HDR 高动态范围 "hdr" 是的 .hdr
KTX2 "ktx2" 是的 .ktx2
KTX2+zstd "ktx2", "zstd" 是的 .ktx2
JPEG "jpeg" .jpg,.jpeg
WebP "webp" .webp
OpenEXR "exr" .exr
TGA "tga" .tga
PNM "pnm" .pam.pbm.pgm,.ppm
BMP "bmp" .bmp
DDS "dds" .dds
KTX2+zlib "ktx2", "zlib" .ktx2
Basis "basis-universal" .basis

音频格式(作为资产加载AudioSource):

格式 Cargo 特征 默认? 文件扩展名
OGG Vorbis "vorbis" 是的 .ogg.oga,.spx
FLAC "flac" .flac
WAV "wav" .wav
MP3 "mp3" .mp3

3D 资源(模型或场景)格式:

格式 Cargo特征 默认? 文件扩展名
GLTF "bevy_gltf" 是的 .gltf,.glb

着色器格式(作为资产加载Shader):

格式 Cargo特征 默认? 文件扩展名
WGSL 不适用 是的 .wgsl
GLSL "shader_format_glsl" .vert.frag,.comp
SPIR-V "shader_format_spirv" .spv

字体格式(作为资源加载Font):

格式 Cargo特征 默认? 文件扩展名
TrueType 不适用 是的 .ttf
OpenType 不适用 是的 .otf

Bevy 场景:

格式 文件扩展名
RON-serialized scene 序列化场景 .scn,.scn.ron

有非官方插件可用于添加对更多文件格式的支持。

GLTF 资产标签

用于引用 GLTF 子资产的资产路径标签。

支持以下资产标签({}是数字索引):

  • Scene{}: GLTF 场景 作为 BevyScene
  • Node{}: GLTF 节点作为GltfNode
  • Mesh{}:GLTF 网格作为GltfMesh
  • Mesh{}/Primitive{}: GLTF 原始 作为 BevyMesh
  • Mesh{}/Primitive{}/MorphTargets:GLTF 基元的变形目标动画数据
  • Texture{}:GLTF 纹理作为 BevyImage
  • Material{}: GLTF 材料 作为 BevyStandardMaterial
  • DefaultMaterial:如上所述,如果 GLTF 文件包含没有索引的默认材质
  • Animation{}: GLTF 动画 作为 BevyAnimationClip
  • Skin{}:GLTF 网格皮肤作为 BevySkinnedMeshInverseBindposes

着色器导入

等待去做

wgpu后端

wgpu(和 以后的 Bevy)支持以下后端:

平台 后端(按优先级顺序)
Linux Vulkan, GLES3
Windows DirectX 12, Vulkan, GLES3
macOS Metal
iOS Metal
Android Vulkan, GLES3
Web WebGPU, WebGL2

在 GLES3 和 WebGL2 上,某些渲染器功能不受支持,并且性能较差。

WebGPU 是实验性的,很少有浏览器支持它。

时间表

在内部,Bevy 有以下内置时间表:

  • Main:运行每个帧更新周期,以执行一般应用程序逻辑
  • ExtractSchedule:在 Main之后运行,将数据从主世界复制到渲染世界
  • Render:在 ExtractSchedule 之后运行,与下一次 Main 运行并行执行所有渲染/图形

该 Main 计划只是运行一系列其他计划:

第一次运行时(应用程序的第一帧更新):

  • PreStartup  启动前
  • Startup    启动时
  • PostStartup  启动后

每次运行时(通过资源MainScheduleOrder资源控制):

  • First:必须在每一帧开始时完成的任何初始化
  • PreUpdate:用于在用户逻辑之前运行的引擎内部系统
  • StateTransition:执行任何挂起的状态转换
  • RunFixedUpdateLoopFixedUpdate:根据需要多次运行FixedUpdate计划
  • Update:对于应该每一帧运行的所有用户逻辑(您的系统)
  • PostUpdate:用于在用户逻辑之后运行的引擎内部系统
  • Last:必须在每帧结束时完成的任何最终清理

FixedUpdate适用于应以固定时间步运行的所有用户逻辑(您的系统) 。

当您想要更改状态时,StateTransition会为您的状态运行OnEnter(...)/OnTransition(...)/OnExit(...) 时间表

Render时间表使用集合(RenderSet )Render进行组织:

  • ExtractCommands:从运行的系统应用延迟缓冲区ExtractSchedule
  • PreparePrepareFlush:在 GPU 上设置数据(缓冲区、纹理等)
  • QueueQueueFlush:生成要运行的渲染作业(通常是阶段项)
  • PhaseSortPhaseSortFlush:排序和批处理阶段项目以实现高效渲染
  • RenderRenderFlush:执行渲染图以实际触发 GPU 执行工作
  • CleanupCleanupFlush:清除渲染世界中不应保留到下一帧的所有数据

如果需要,*Flush变体只是在每个步骤之后应用任何延迟缓冲区。

运行条件

去做

插件

去做

捆绑

Bevy 的内置捆绑类型,用于生成不同常见类型的实体。

(API文档中列出)

任何有最多 15个Component类型的元组都是有效的捆绑包。

一般的:

  • SpatialBundle:包含必需的变换和可见性 组件,这些组件必须包含在需要渲染或层次结构的所有实体上
  • TransformBundle:仅包含变换类型,SpatialBundle的子集
  • VisibilityBundle:仅包含可见性类型,SpatialBundle的子集

场景:

  • SceneBundle:用于生成场景
  • DynamicSceneBundle:用于生成动态场景

声音:

  • AudioBundleAudioSource:从资源中播放[音频][cb::audio]
  • SpatialAudioBundle:播放AudioSource资产中的位置音频
  • AudioSourceBundle:从自定义数据源/流播放音频
  • SpatialAudioSourceBundle:从自定义数据源/流播放位置音频

bevy 3D:

  • Camera3dBundle:3D相机,可以使用透视(默认)或正交投影
  • TemporalAntiAliasBundle:将其添加到 3D 相机以启用 TAA
  • ScreenSpaceAmbientOcclusionBundle:将其添加到 3D 相机以启用 SSAO
  • MaterialMeshBundle:3D 对象/基元:网格和用于绘制它的自定义材质
  • PbrBundle: MaterialMeshBundle使用默认的基于物理的材质 ( StandardMaterial)
  • DirectionalLightBundle:3D 定向光(如太阳)
  • PointLightBundle:3D 点光源(如灯或蜡烛)
  • SpotLightBundle:3D 聚光灯(如投影仪或手电筒)

bevy 2D:

  • Camera2dBundle:2D相机,采用正投影+其他2D特殊配置
  • SpriteBundle:2D精灵(Image资源类型)
  • SpriteSheetBundle:2D精灵(TextureAtlas资源类型)
  • MaterialMesh2dBundle:2D 形状,具有自定义网格和材质(类似于 3D 对象)
  • Text2dBundle:要在 2D 世界(而不是 UI)中绘制的文本

bevy UI 用户界面:

  • NodeBundle: 空节点元素(如 HTML 
  • ButtonBundle:按钮元素
  • ImageBundle:图像元素(Image资产类型)
  • AtlasImageBundle:图像元素(TextureAtlas资产类型)
  • TextBundle:文本元素

资源

(有关使用资源的更多信息)

配置资源

这些资源允许您更改 Bevy 各个部分的工作方式的设置。

这些可以在开始时插入,但也应该可以在运行时更改(从系统 ):

  • ClearColor:全局渲染器背景色,用于在每帧开始时清除窗口
  • GlobalVolume:播放音频的总音量
  • AmbientLight:全局渲染器“假照明”,使阴影看起来不会太暗/黑
  • Msaa:多样本抗锯齿的全局渲染器设置(某些平台可能仅支持值 1 和 4)
  • UiScale:使所有 UI 更大/更小的全局缩放值
  • GizmoConfig:控制小工具的渲染方式
  • WireframeConfig:全局切换使所有内容都渲染为线框
  • GamepadSettings:游戏手柄输入设备设置,例如操纵杆死区和按钮灵敏度
  • WinitSettings:操作系统窗口后端的设置,包括更新循环/电源管理设置
  • TimeUpdateStrategy:用于控制Time如何更新
  • Schedules:存储所有计划,允许您在运行时注册其他附加功能
  • MainScheduleOrder:将运行每个帧更新的计划序列

运行时不可修改的设置不使用资源表示。相反,它们是通过各自的插件进行配置的。

引擎资源

这些资源提供在运行时访问游戏引擎的不同功能。

如果您需要它们的状态,或者控制 Bevy 的各个部分,请从您的系统访问它们。这些资源都在主世界。请参阅此处了解渲染世界中的资源。

  • Time:全局时间相关信息(当前帧增量时间、启动以来的时间等)
  • FixedTime:跟踪下一次固定更新之前的剩余时间
  • AssetServer:控制资产系统:加载资产、查看加载状态等。
  • Assets:包含给定类型的加载资源的实际数据
  • State:状态类型的当前值
  • NextState:用于对到另一个状态的转换进行排队
  • Gamepads:跟踪所有当前检测到(连接)的游戏手柄设备的 ID
  • SceneSpawner:直接控制在主应用程序世界中生成场景
  • FrameCount:总帧数
  • ScreenshotManager:用于请求截取/保存窗口的屏幕截图
  • AppTypeRegistry:访问反射类型注册表
  • AsyncComputeTaskPool:运行后台CPU任务的任务池
  • ComputeTaskPool:主应用程序计划(所有系统)运行的任务池
  • IoTaskPool:运行后台 I/O 任务的任务池(如资源加载)
  • WinitWindows(非发送winit):每个窗口后端的原始状态
  • NonSendMarker:虚拟资源,确保系统始终在主线程上运行
渲染世界资源

这些资源存在于渲染世界中。可以从渲染系统(在渲染阶段运行)访问它们。

  • MainWorld:(仅提取时间表!)从主世界访问数据
  • RenderGraph: Bevy 渲染图
  • PipelineCache:Bevy 的渲染管道管理器。用于存储应用程序使用的渲染管道,以避免多次重新创建它们。
  • TextureCache:Bevy 的临时纹理管理器。当您需要在渲染期间内部使用纹理时很有用。
  • DrawFunctions

    :存储给定阶段项类型的绘制函数

  • RenderAssets:包含当前加载的资产数据的 GPU 表示的句柄
  • DefaultImageSamplerImage:资源纹理的默认采样器
  • FallbackImage:虚拟 1x1 像素白色纹理。当您没有可用纹理时,对于通常需要纹理的着色器很有用。

渲染世界中还有许多其他资源,这里没有提及,要么是因为它们是 Bevy 渲染算法的内部资源,要么是因为它们只是主世界中等效资源的提取副本。

底层wgpu资源

使用这些资源,您可以直接访问wgpu用于控制 GPU 的 API。这些在主世界和渲染世界中都可用。

  • RenderDevice:GPU设备,用于创建渲染/计算的硬件资源
  • RenderQueue:用于向硬件提交工作的GPU队列
  • RenderAdapter:物理GPU硬件的句柄
  • RenderAdapterInfo:有关 Bevy 运行的 GPU 硬件的信息

输入处理资源

这些资源代表不同输入设备的当前状态。从您的系统中读取它们 以处理用户输入。

  • Input:键盘按键状态,作为二进制输入值
  • Input:鼠标按钮状态,作为二进制输入值
  • Input:游戏手柄按钮,作为二进制输入值
  • Axis:模拟轴游戏手柄输入(操纵杆和触发器)
  • Axis:游戏手柄按钮,表示为模拟轴值
  • Touches:当前所有手指触摸触摸屏的状态
  • Gamepads:所有连接的GamepadID的注册表

事件

(有关处理事件的更多信息)

输入事件

这些事件会在输入设备的活动上触发。读取它们以[处理用户输入][cb::input]。

  • MouseButtonInput:鼠标按钮状态的变化
  • MouseWheel:滚动多个像素或行 ( MouseScrollUnit)
  • MouseMotion:鼠标的相对移动(前一帧的像素),与操作系统指针/光标无关
  • CursorMoved:操作系统鼠标指针/光标的新位置
  • KeyboardInput:键盘按键状态的变化(按键,而不是文本)
  • ReceivedCharacter:来自操作系统的 Unicode 文本输入(正确处理用户的语言和布局)
  • Ime:从IME输入Unicode文本(支持不同脚本的高级文本输入)
  • TouchInput:手指触摸触摸屏的状态发生变化
  • GamepadEvent:游戏手柄或其任何按钮或轴的状态发生变化
  • GamepadRumbleRequest:发送这些事件来控制游戏手柄的隆隆声
  • TouchpadMagnify:笔记本电脑触摸板上的捏合缩放手势 (macOS)
  • TouchpadRotate:笔记本电脑触摸板上的两指旋转手势 (macOS)

引擎事件

与 Bevy 应用程序正常运行时发生的各种内部事件相关的事件。

  • AssetEvent:当资产数据被添加/修改/删除时,由 Bevy 发送;可用于检测资产的变化
  • HierarchyEvent:当实体父/子发生变化时由 Bevy 发送
  • AppExit:告诉 Bevy 关闭

系统和控制事件

来自操作系统/窗口系统的事件,或者控制Bevy。

  • RequestRedraw:在不连续刷新的应用程序中,在睡觉前请求再更新一次
  • FileDragAndDrop:用户将文件拖放到我们的应用程序中
  • CursorEntered:操作系统鼠标指针/光标进入我们的窗口之一
  • CursorLeft:操作系统鼠标指针/光标退出了我们的窗口之一
  • WindowCloseRequested:操作系统想要关闭我们的一个窗口
  • WindowCreated:新的应用程序窗口打开
  • WindowClosed:Bevy 窗口已关闭
  • WindowDestroyed:操作系统窗口在窗口关闭后释放/删除
  • WindowFocused:我们的一个窗口现在已聚焦
  • WindowMoved:操作系统/用户移动了我们的一个窗口
  • WindowResized:操作系统/用户调整了我们的一个窗口的大小
  • WindowScaleFactorChanged:我们的一个窗口已更改其 DPI 缩放系数
  • WindowBackendScaleFactorChanged:操作系统报告窗口的 DPI 缩放因子发生变化

成分

各个组件类型的完整列表过于具体,无法在此处列出。

请参阅:(API 文档中的列表)


非官方 Bevy 作弊书

bevy教程

本书的本章包含教程。教程从头到尾按逻辑顺序教您知识。如果您正在寻找一些东西来指导您学习 Bevy,也许其中一些对您有用。

本书的其余部分旨在用作参考,因此您可以跳转到您想要了解的特定主题。

本章的第一个教程“引导教程”简单地按照建议的学习顺序组织了本书中的所有主题,从基础知识到高级概念。如果您刚刚学习 Bevy 并且不知道如何进步,您可以使用它作为主目录(左侧栏)的替代。如果您是 Bevy 新手,您可以从这里开始寻找解决方法。

如果您想要更窄范围的示例来教您如何解决特定问题,可以在Bevy Cookbook 章节中找到这些示例。

您还应该查看 Bevy 的官方示例集。引擎的几乎每个区域都有一些东西,尽管它们通常只显示 API 的简单用法,而没有太多解释。


Guided Tour - Unofficial Bevy Cheat Book

非官方 Bevy 作弊书

bevy新手?指导教程!

欢迎来到bevy!:) 我们很高兴您加入我们的社区!

本页将引导您阅读本书,帮助您全面了解如何与 Bevy 合作。这些主题按照对学习有意义的顺序排列:从基础到高级。

这只是一个帮助您导航的建议。随意浏览这本书并阅读您感兴趣的任何内容。主目录(左侧边栏)旨在为任何技能水平的 Bevy 用户提供参考。


请务必查看Bevy 官方示例。如果您需要帮助,请使用GitHub Discussions,或者欢迎加入我们在Discord中聊天并寻求帮助。

如果您遇到问题,请务必查看 “常见陷阱”一章,看看本书是否对您有帮助。此处记录了 Bevy 社区成员遇到的一些最常见问题的解决方案。

基本

这些是使用 Bevy 的绝对要素。每一个 Bevy 项目,即使是一个简单的项目,都需要您熟悉这些概念。

可以想象,仅使用这些知识,您就可以制作类似简单的游戏即兴游戏或原型之类的东西。不过,随着项目的发展,您可能很快就需要了解更多信息。

  • bevy设置技巧
    • 入门
  • Bevy 编程框架
    • ECS简介
    • 实体、组件
    • 捆绑
    • 资源
    • 系统
    • 应用程序生成器
    • 查询
    • 命令
  • 游戏引擎基础知识
    • 坐标系
    • 变换
    • 时间和计时器
  • 一般图形功能
    • 相机
  • bevy资产管理公司
    • 使用 AssetServer 加载资源
    • 句柄
  • 输入处理
    • 键盘
    • 鼠标
    • 游戏手柄(控制器)
    • 触摸屏
  • 窗口管理
    • 窗口属性
    • 更改背景颜色
  • 声音的
    • 播放声音

下一步

您可能需要学习其中大部分主题才能制作一个不平凡的 Bevy 项目。当你对基础知识有信心后,你应该学习这些。

  • Bevy 编程框架
    • 事件
    • 系统执行顺序
    • 运行条件
    • 系统集合
    • 当地资源
    • 时间表
    • 状态
    • 插件
    • 变化检测
  • 游戏引擎基础知识
    • 父/子层次结构
    • 能见度
    • 记录/控制台消息
  • 输入处理
    • 将光标转换为世界坐标
  • bevy资产管理
    • 访问资产数据
    • 热重载资源
  • bevy设置技巧
    • Bevy 开发工具和编辑器
    • 社区插件生态系统
  • 声音的:
    • 空间音频

中级的

这些是更专业的主题。您可能需要其中一些,具体取决于您的项目。

  • Bevy 编程框架
    • 直接访问世界各地
    • 独家系统
    • 参数集
    • 系统管道
  • 游戏引擎基础知识
    • 固定时间步长
  • 一般图形功能
    • HDR、色调映射
    • 盛开
  • 输入处理
    • 输入文本
    • 拖放文件
  • bevy资产管理
    • 通过资产事件响应变化
    • 跟踪资产加载进度
  • 编程模式
    • 为系统编写测试
    • 通用系统
    • 手动事件清除
  • 窗口管理
    • 抓取/捕获鼠标光标
    • 设置窗口图标
  • 声音的
    • 自定义音频流

高级的

这些主题适用定位于专业的情况。如果您想更多地了解 Bevy 内部工作原理、使用自定义功能扩展引擎或使用 Bevy 执行其他高级操作,您可以学习它们。

  • Bevy 编程框架
    • 不发送
  • 编程模式
    • 组件存储
  • bevy设置技巧
    • 定制 Bevy(货箱 cargo crates 和功能)
    • 使用前沿 Bevy(主要)
  • Bevy 渲染 (GPU) 框架
    • 渲染架构概述
    • 渲染阶段

(本节结束,见2)

你可能感兴趣的:(bevy,学习)