如何解决将TaskManager脚本从gdscript / Godot迁移到bevy and rust
我正在构建一个城市建筑游戏原型,在这个原型中,我让村民同时执行许多不同的任务,例如搬运东西,建造,收获。为此,我创建了一个TaskManager单例脚本,其中包含任务积压数组和一个活动任务数组,可以根据优先级选择从积压到活动的任务,在活动列表上运行每个任务的相应run_task()方法,并在完成后将其删除。我仍在学习生锈和弯曲,但是从我的阅读中,我无法像在godot中那样真正地在弯曲中形成单身。在这种情况下,我有什么选择?抱歉,如果不是这个问题的地方,但是我很难找到有关这种与引擎和铁锈有关的信息。
解决方法
除非我误解了您的需求,否则可以使用“资源”来完成。来自Bevy book:
...但是大多数应用程序也将需要某种“全球唯一”数据。在Bevy ECS中,我们使用资源表示全球唯一的数据。
使用方式:
App::build()
.add_resource(TaskManager{ ... })
.add_system(process_tasks.system())
...
fn process_tasks(manager: Res<TaskManager>,...) {
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。