Skip to main content

Crate bevy_coroutine_system

Crate bevy_coroutine_system 

Source
Expand description

Bevy 协程系统的主要库

该库提供了在Bevy系统中使用协程的能力,允许系统在多帧执行并暂停/恢复。

§特性

  • 🎮 多帧执行: 系统可以跨多个游戏帧执行
  • ⏸️ 暂停/恢复: 支持在任意点暂停执行并在后续帧恢复
  • 🔄 异步操作: 内置对异步操作的支持(如延时等待)
  • 🛠️ 简单易用: 通过宏自动处理复杂的生命周期和状态管理

§快速开始

#![feature(coroutines, coroutine_trait)]
 
use bevy::prelude::*;
use bevy_coroutine_system::prelude::*;
use std::time::Duration;

#[coroutine_system]
fn my_coroutine_system(
    mut commands: Commands,
    mut query: Query<&mut Transform>,
) {
    // 第一帧执行
    for mut transform in query.iter_mut() {
        transform.translation.x += 10.0;
    }
     
    // 暂停1秒
    yield sleep(Duration::from_secs(1));
     
    // 恢复后继续执行
    for mut transform in query.iter_mut() {
        transform.translation.y += 10.0;
    }
}

Modules§

prelude
预导入模块,包含常用的类型和功能

Macros§

yield_asyncDeprecated
yield_async!宏(已废弃,推荐使用原生 yield 语法)

Structs§

CoroutinePlugin
Bevy 协程系统插件
CoroutineTask
协程任务的容器
CoroutineTaskInput
协程的输入参数
RunningCoroutines
管理所有运行中的协程任务

Traits§

CoroutineSystem

Functions§

next_frame
创建一个等待下一帧的Future
noop
创建一个空操作(no-op)的 Future
sleep
创建一个睡眠Future
spawn_blocking_task
一个通用的函数,用于在后台线程中执行阻塞任务并返回一个Future

Attribute Macros§

coroutine_system
协程系统的过程宏