7个版本

0.3.1 2024年7月4日
0.3.0 2024年7月4日
0.3.0-rc2024年6月11日
0.2.0 2024年2月18日
0.1.1 2024年1月31日

#894 in 游戏开发

Download history 31/week @ 2024-05-04 40/week @ 2024-05-11 63/week @ 2024-05-18 39/week @ 2024-05-25 55/week @ 2024-06-01 138/week @ 2024-06-08 56/week @ 2024-06-15 64/week @ 2024-06-22 236/week @ 2024-06-29 126/week @ 2024-07-06 40/week @ 2024-07-13 36/week @ 2024-07-20 78/week @ 2024-07-27 53/week @ 2024-08-03 42/week @ 2024-08-10 28/week @ 2024-08-17

205 每月下载量
用于 2 Crate

MIT/Apache

220KB
3.5K SLoC

Yarn Spinner for Rust

Crates.io Docs Discord

注意: Yarn Spinner for Rust是一个正在进行中的项目。我们目前不提供任何官方支持。如果您有任何问题,请提交问题,并加入官方Yarn Spinner Discord来讨论项目!

Rust版本的Yarn Spinner,友好的游戏对话编写工具。更多请参阅docs.yarnspinner.dev或查看实时演示,该演示使用Bevy引擎编写。此项目为Bevy提供了一等支持,并假设您正在使用它。如果您没有,请查看书中相关部分

Yarn Spinner for Rust Demo

快速入门

直接从我们的示例中获取

首先,让我们添加我们的依赖项

cargo add bevy bevy_yarnspinner bevy_yarnspinner_example_dialogue_view

现在,main.rs

use bevy::prelude::*;
use bevy_yarnspinner::prelude::*;
use bevy_yarnspinner_example_dialogue_view::prelude::*;

fn main() {
    let mut app = App::new();
    app.add_plugins((
        DefaultPlugins,
        // Register the Yarn Spinner plugin using its default settings, which will look for Yarn files in the "dialogue" folder.
        // If this app should support Wasm or Android, we cannot load files without specifying them, so use the following instead.
        // YarnSpinnerPlugin::with_yarn_source(YarnFileSource::file("dialogue/hello_world.yarn")),
        YarnSpinnerPlugin::new(),
        // Initialize the bundled example UI
        ExampleYarnSpinnerDialogueViewPlugin::new(),
    ))
        .add_systems(Startup, setup_camera)
        .add_systems(
            Update,
            // Spawn the dialogue runner once the Yarn project has finished compiling
            spawn_dialogue_runner.run_if(resource_added::<YarnProject>),
        )
        .run();
}

fn setup_camera(mut commands: Commands) {
    commands.spawn(Camera2dBundle::default());
}

fn spawn_dialogue_runner(mut commands: Commands, project: Res<YarnProject>) {
    // Create a dialogue runner from the project.
    let mut dialogue_runner = project.create_dialogue_runner();
    // Immediately start showing the dialogue to the player
    dialogue_runner.start_node("HelloWorld");
    commands.spawn(dialogue_runner);
}

最后,assets/dialogue/hello_world.yarn

title: HelloWorld
---
Hello World! To continue the dialogue, click with your mouse, press the space bar or the enter key.
These are options. You can select one by clicking on it or pressing the corresponding number on your keyboard.
-> Some cool option
-> Some other cool option
Now we'll jump to another node!
<<jump AnotherNode>>

===

title: AnotherNode
---
Now, a character will talk. Notice how the upper left corner of the dialogue will show their name.
Hohenheim: Hi, I'm Jan Hohenheim, creator of Yarn Spinner for Rust. I hope you enjoy using it!
Let's set a condition. Do you prefer dogs or cats?
-> Dogs
    <<set $animal = "dog">>
-> Cats
    <<set $animal = "cats">>
-> Turtles
    I, uuuh... okay, why not.
    <<set $animal = "turtles">>
Now let's print the result of the condition. Your preference is...
(Drum roll)
<<if $animal == "dog">>
Dogs! Arf Arf!
<<elseif $animal == "cats">>
Cats! (Can't say I agree, but you do you)
<<else>>
Turtles! Solid choice.
<<endif>>
Et voilà! That was all. Thanks for checking out Yarn Spinner for Rust! Continuing from the last node will exit the dialogue.
===

版本表

Bevy Yarn Spinner for Rust
0.14 0.3
0.13 0.2
0.12 0.1

依赖项

~45–83MB
~1.5M SLoC