4 releases
new 0.3.0 | Dec 10, 2024 |
---|---|
0.2.2 | Oct 20, 2024 |
0.2.1 | Oct 20, 2024 |
0.2.0 | Oct 20, 2024 |
0.1.0 |
|
#1177 in Game dev
420KB
358 lines
bevy_easy_portals
Easy-to-use portals for Bevy
Getting Started
First, add PortalPlugin
to your app, then use the Portal
component, et voila!
See the examples for more references.
Example usage
use bevy::prelude::*;
use bevy_easy_portals::{Portal, PortalPlugin}
fn main() {
App::new()
.add_plugins((DefaultPlugins, PortalPlugin))
.add_systems(Startup, setup)
.run();
}
fn setup(
mut commands: Commands,
mut materials: ResMut<Assets<StandardMaterial>>,
mut meshes: ResMut<Assets<Mesh>>,
) {
let primary_camera = commands
.spawn((Camera3d::default(), Transform::from_xyz(0.0, 0.0, 10.0)))
.id();
// Spawn something for the portal to look at
commands.spawn((
Mesh3d(meshes.add(Cuboid::default())),
MeshMaterial3d(materials.add(Color::WHITE)),
Transform::from_xyz(10.0, 0.0, 0.0),
));
// Where the portal's target camera should be
let target = commands.spawn(Transform::from_xyz(10.0, 0.0, 10.0)).id();
// Where the portal should be located
let portal_transform = Transform::default();
// Spawn the portal, omit a material since one will be added automatically
commands.spawn((
Mesh3d(meshes.add(Rectangle::default())),
portal_transform,
Portal::new(primary_camera, target),
));
}
Compatibility
bevy_easy_portals |
bevy |
---|---|
0.3 |
0.15 |
0.1..0.2 |
0.14 |
Features
Feature | Description |
---|---|
gizmos |
Use gizmos for the portal's aabb and camera transform |
Contributing
Feel free to open a PR!
If possible, please try to keep it minimal and scoped.
Alternatives
Dependencies
~42–75MB
~1.5M SLoC