gpt4 book ai didi

rust - 将 TaskManager 脚本从 gdscript/Godot 迁移到 bevy 和 rust

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

我正在构建一个城市 build 游戏原型(prototype),让村民同时执行许多不同的任务,例如搬运东西、 build 、收割,为此我创建了一个带有任务积压数组和事件任务数组的 TaskManager 单例脚本,它可以根据优先级选择哪些任务从积压到事件,运行事件列表中每个任务的相应 run_task() 方法,并在完成后将其删除。我仍在学习 rust 和 bevy,但从我读到的内容来看,我无法像在 godot 中那样在 bevy 中制作单例。在这种情况下我有什么选择?抱歉,如果这不是此类问题的地方,但我很难找到有关与发动机和使用rust 相关的此类事物的信息。

最佳答案

除非我误解了您的需求,否则这是通过使用“资源”来完成的。来自 Bevy book :

... But most Apps will also require "globally unique" data of some kind. In Bevy ECS, we represent globally unique data using Resources.


像这样使用:
App::build()
.add_resource(TaskManager{ ... })
.add_system(process_tasks.system())
...
fn process_tasks(manager: Res<TaskManager>, ...) {
...
}

关于rust - 将 TaskManager 脚本从 gdscript/Godot 迁移到 bevy 和 rust,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64614831/

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