gpt4 book ai didi

rust - Amethyst 的 fixed_update 是否有 Bevy 等价物?

转载 作者:行者123 更新时间:2023-12-03 11:29:35 25 4
gpt4 key购买 nike

在 Amethyst 或许多其他游戏引擎中,update 之间存在区别。对于逻辑和fixed_update用于渲染。
Bevy 0.4 引入了状态,但只有 enter , updateexit生命周期钩子(Hook)。
可以使用 stage 中的常量创建自定义阶段模块,但它只添加了 POST_UPDATEPRE_UPDATE .
我的问题在标题中,但此外,如果没有等价物,是否有运行处理渲染的系统的最佳实践?
一个可行的解决方案是制作第二个更新系统(例如称为渲染),但是如果有更好的方法,我的目标是提高性能。

最佳答案

我不知道这对您的用例是否有帮助,但在 bevy 0.4 announcement 中一个例子表明可以用 FixedTimestep 创建一个舞台.
因此,使用 0.4 公告中的示例作为基础:

use bevy::prelude::*;
use bevy::core::FixedTimestep;

fn main() {
let target_rate = 60.0;
App::build()
// Add the default plugins to open a window
.add_plugins(DefaultPlugins)
.add_stage_after(
stage::UPDATE,
"fixed_update",
SystemStage::parallel()
// Set the stage criteria to run the system at the target
// rate per seconds
.with_run_criteria(FixedTimestep::steps_per_second(target_rate))
.with_system(my_system.system()),
)
.run();

}
也许这种方法没有优化(我不完全知道 FixedTimestep 标准在内部是如何工作的),但在大多数情况下应该足够了。
编辑

我发现可以使用 render App stages作为舞台名称,应该更符合您的需求:
use bevy::prelude::*;

fn main() {
App::build()
// Add the default plugins to open a window
.add_plugins(DefaultPlugins)
.add_system_to_stage(bevy::render::stage::RENDER, my_system.system())
.run();

}

关于rust - Amethyst 的 fixed_update 是否有 Bevy 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65457669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com