8个版本
0.1.7 | 2024年3月24日 |
---|---|
0.1.6 | 2024年3月24日 |
#937 in 游戏开发
每月下载26次
26KB
422 代码行
bevy_icon_creator
由 Franklin E. Blanco 创建
描述
bevy图标创建器。将任何实体、网格、模型转换为图标/纹理,轻松实现!支持一次性创建多个纹理。
Bevy版本
bevy_icon_creator |
bevy |
---|---|
0.1 |
0.13.1/0.13 |
用法
假设你有一个物品,我们可以称这个物品为剑。你想要为剑创建一个纹理。可能是为了你的库存系统。
你需要做的以下操作:
- 将主插件添加到你的bevy应用中
app.add_plugins(IconCreatorPlugin::default());
你可以自定义插件的一些部分。有关更多信息,请参阅IconCreatorPlugin
。
- 生成实体及其包含的任何实体。如果剑由一个剑父实体(空)和两个子实体组成:手柄和刀片,你想要正常生成它。你可以选择:使用Visibility::Hidden生成实体(不要担心,此插件会在移动到场景后将它自动设置为Visibility::Visible)。或者只是将它生成在一个不可见的地方,远离。无论哪种方式,它都只会出现在场景中一帧,因此你也可以不去管它。
"注意:场景中渲染的所有内容都递归地放置在不同的渲染层中。"
-
生成后,用
NeedsIconMarker
标记父实体。实例化它所需的唯一字段是Uuid。这将用于你稍后找到的图像并使用它。使用NeedsIconMarker::new(uuid)
。你可以设置一些自定义的可选参数,使用with_transform()
&with_extra_frames()
。额外的帧数意味着场景等待加载项目的时间更长,而变换基本上意味着实体在场景中放置后提供的附加变换。使用此来偏移实体的位置、旋转或缩放,以便创建的纹理可以显示。 -
标记实体后,它将被重新分配到一个可用的场景中。
-
然后,在3 + (EXTRA_FRAMES)帧之后,图像将在资源
CreatedIcons
中可用。使用你最初传递给NeedsIconMarker
的uuid调用get_image_handle(uuid)
。 (图像应该在第一次标记NeedsIconMarker时可用,但在此之前将是一个空白图像,直到它被加载。) -
我已经提供了一种更方便的方式来处理这个问题,你可以使用
SetImageOnLoadMarker(uuid)
并将其添加到任何 UiImage 中。当它被添加后,它将轮询 CreatedIcons 资源,直到图像渲染完成。一旦完成,它将自动交换该 UiImage 的纹理。
感谢使用!
此内容是从我的开发中提取的:## Operation Deep Freeze
如果您有任何疑问:[email protected]
依赖项
~18–45MB
~716K SLoC