{"id":15017982,"url":"https://github.com/sburris0/bevy_flycam","last_synced_at":"2025-05-15T06:03:46.057Z","repository":{"id":39563868,"uuid":"326317484","full_name":"sburris0/bevy_flycam","owner":"sburris0","description":"Basic first-person fly camera for the Bevy game engine","archived":false,"fork":false,"pushed_at":"2024-12-08T17:47:35.000Z","size":131,"stargazers_count":191,"open_issues_count":13,"forks_count":62,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-15T06:03:18.262Z","etag":null,"topics":["3d","bevy","bevy-engine","firstperson"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sburris0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-03T03:12:38.000Z","updated_at":"2025-05-10T12:08:12.000Z","dependencies_parsed_at":"2024-06-21T02:14:28.036Z","dependency_job_id":"b128d4d4-349b-428f-bbbe-e7bb9cc6c832","html_url":"https://github.com/sburris0/bevy_flycam","commit_stats":{"total_commits":94,"total_committers":22,"mean_commits":"4.2727272727272725","dds":0.6702127659574468,"last_synced_commit":"4fc9071fad27293905a40b590e670067b328c7fb"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sburris0%2Fbevy_flycam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sburris0%2Fbevy_flycam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sburris0%2Fbevy_flycam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sburris0%2Fbevy_flycam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sburris0","download_url":"https://codeload.github.com/sburris0/bevy_flycam/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254283336,"owners_count":22045140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","bevy","bevy-engine","firstperson"],"created_at":"2024-09-24T19:51:17.196Z","updated_at":"2025-05-15T06:03:46.031Z","avatar_url":"https://github.com/sburris0.png","language":"Rust","funding_links":[],"categories":["Plugins and Crates","Cameras"],"sub_categories":["3D"],"readme":"# bevy_flycam\n\n[![Crates.io](https://img.shields.io/crates/v/bevy_flycam)](https://crates.io/crates/bevy_flycam)\n![Crates.io](https://img.shields.io/crates/l/bevy_flycam)\n![docs.rs](https://img.shields.io/docsrs/bevy_flycam)\n\nA basic first-person fly camera for Bevy 0.14\n\n## Controls\n\n- WASD to move horizontally\n- SPACE to ascend\n- LSHIFT to descend\n- ESC to grab/release cursor.\n\n## Comparison\n\nThere are a few notable differences from [bevy_fly_camera](https://github.com/mcpar-land/bevy_fly_camera)...\n\n- No linear interpolation\n- Cursor grabbing\n- Shorter code\n- Single-line setup\n- A tiny bit faster?\n\n## Usage\n\n1. Add to `Cargo.toml` or copy `lib.rs` to your own file\n\n    ```toml\n    [dependencies]\n    bevy = \"0.15\"\n    bevy_flycam = \"*\"\n    ```\n\n    or\n\n    ```toml\n    [dependencies]\n    bevy = \"0.15\"\n    bevy_flycam = { git = \"https://github.com/sburris0/bevy_flycam\" }\n    ```\n\n2. Include the prelude:\n\n    ```rust\n    use bevy_flycam::prelude::*;\n    ```\n\n3. Add the `PlayerPlugin`:\n\n    ```rust\n    #[bevy_main]\n    fn main() {\n        App::new()\n            .add_plugins(DefaultPlugins)\n            .add_plugins(PlayerPlugin)\n            .run();\n    }\n    ```\n\nNote that `PlayerPlugin` will spawn a camera for you. See [Using your own camera](#using-your-own-camera) for details on how to\nuse a pre-existing one.\n\nAlternatively you can see the example `basic.rs` or `scroll.rs` located in the examples folder.\nYou can run the example by cloning this repository and run the command: `cargo run --release --example basic`\n\n## Customization\n\n### Movement and keybindings\n\nTo modify player movement speed or mouse sensitivity add it as a resource. \u003c/br\u003e\nSame thing goes for the keybindings used for moving the camera.\n\n```Rust\n#[bevy_main]\nfn main() {\n    App::new()\n        .add_plugins(DefaultPlugins)\n        .add_plugins(PlayerPlugin)\n        .insert_resource(MovementSettings {\n            sensitivity: 0.00015, // default: 0.00012\n            speed: 12.0, // default: 12.0\n        })\n        .insert_resource(KeyBindings {\n            move_ascend: KeyCode::E,\n            move_descend: KeyCode::Q,\n            ..Default::default()\n        })\n        .run();\n}\n```\n\n### Using your own camera\n\nYou can also use `NoCameraPlayerPlugin` if you want to use your own camera. Be sure to add the `FlyCam` component to your own camera or else this plugin won't know what to move.\n\n```Rust\n#[bevy_main]\nfn main() {\n    App::new()\n        .add_plugins(DefaultPlugins)\n        .add_plugin(NoCameraPlayerPlugin)\n        .add_systems(Startup, setup)\n        .run();\n}\n\nfn setup(mut commands: Commands) {\n    commands.spawn((\n        Camera3dBundle {\n            transform: Transform::from_xyz(0.0, 2.0, 0.5),\n            ..default()\n        },\n        FlyCam\n    ));\n}\n```\n\n## Support\n\n[![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)\n\nbevy_flycam's crate version follows bevy's minor version as shown:\n| bevy     | bevy_flycam |\n| :--      | :--         |\n| `0.15.0` | `0.15.0`    |\n| `0.14.0` | `0.14.0`    |\n| `0.13.0` | `0.13.0`    |\n| `0.12.0` | `0.12.0`    |\n| `0.11.0` | `0.11.0`    |\n| `0.10.1` | `0.10.1`    |\n\n## Contributing\n\nPRs are very welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsburris0%2Fbevy_flycam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsburris0%2Fbevy_flycam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsburris0%2Fbevy_flycam/lists"}