#icons #texture #model #bevy #gamedev

bevy_icon_creator

一个用于从bevy中的实体/模型自动创建图标的插件

8个版本

0.1.7 2024年3月24日
0.1.6 2024年3月24日

#937 in 游戏开发

每月下载26

MIT/Apache

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

Subreddit

YouTube 频道

如果您有任何疑问:[email protected]

依赖项

~18–45MB
~716K SLoC