7 个版本 (可能破坏)
0.6.0 | 2024 年 7 月 4 日 |
---|---|
0.5.0 | 2024 年 4 月 8 日 |
0.4.0 | 2023 年 11 月 6 日 |
0.3.0 | 2023 年 8 月 15 日 |
0.1.0 | 2023 年 5 月 21 日 |
#150 in 游戏开发
每月 98 次下载
69KB
1.5K SLoC
Bevy 的传送门
Bevy Basic Portals 是一个 Bevy 游戏引擎插件,旨在创建传送门。
这些传送门目前是纯视觉的,可用于创建镜子、室内渲染、水晶球等!
基本用法
此示例演示了如何创建一个简单的传送门,它使用一个球体,由于传送门的存在,这个球体将在屏幕上显示两次。
use bevy::prelude::*;
use bevy_basic_portals::*;
fn main() {
App::new()
.add_plugins((DefaultPlugins, PortalsPlugin::MINIMAL))
.add_systems(Startup, setup)
.run();
}
fn setup(mut commands: Commands, mut meshes: ResMut<Assets<Mesh>>) {
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(-20.0, 0., 20.0).looking_at(Vec3::ZERO, Vec3::Y),
..default()
});
let portal_mesh = meshes.add(Mesh::from(Rectangle::new(10., 10.)));
commands.spawn(CreatePortalBundle {
mesh: portal_mesh,
// This component will be deleted and things that are needed to create the portal will be created
create_portal: CreatePortal {
destination: AsPortalDestination::Create(CreatePortalDestination {
transform: Transform::from_xyz(20., 0., 0.),
..default()
}),
// Uncomment this to see the portal
/*debug: Some(DebugPortal {
show_window: false,
..default()
}),*/
..default()
},
..default()
});
let sphere_mesh = meshes.add(Mesh::from(Sphere::new(2.).mesh().uv(32, 18)));
commands.spawn(PbrBundle {
mesh: sphere_mesh,
transform: Transform::from_xyz(20., 0., -5.),
..default()
});
}
更复杂的示例可以在示例文件夹中找到。
词汇表
- 传送门是用于可视化效果的实体
- 主摄像头是用于可视化效果的摄像头
- (传送门)目的地是表示空间中传送门“指向”的点的实体
- 传送门摄像头是用于渲染效果的摄像头,其与目标的位置与主摄像头与传送门的位置相同
已知限制
(可能在未来修复)
- 此 crate 创建的传送门是单向的,您只能从一个空间看到另一个空间,如果需要双向传送门,可以手动创建两个传送门
- 此 crate 不处理“传送门递归”,即在传送门中查看另一个传送门
- 此 crate 创建的传送门没有可见的边界(不包括混叠伪影),您可以使用
DebugPortal
查看 - 此 crate 不处理通过传送门移动物品,它仅是视觉的,更像是水晶球
- 此 crate 不处理通过传送门的射线投射,需要手动完成
- 此 crate 不处理更改传送门或目标的比例
Bevy 版本
Bevy 版本 | Bevy Basic Portals 推荐版本 |
---|---|
0.14.* | 0.6.0 |
0.13.* | 0.5.0 |
0.12.* | 0.4.0 |
0.11.1 | 0.3.0 |
0.10.* | 0.2.1 |
许可证
Bevy Basic Portals 是非暴力软件:您可以在 NVPLv7+
许可证的条款下使用、重新分配和/或修改它,如源代码根目录中的 LICENSE
文件或 CNPL 仓库 中所述。
Bevy Basic Portals 根据适用法律,提供绝对无保证。
请参阅CNPL网站获取更多信息。
依赖关系
~30–66MB
~1M SLoC