register Camera{2,3}d components for reflection (#4269)

# Objective

When loading a gltf scene with a camera, bevy will panic at ``thread 'main' panicked at 'scene contains the unregistered type `bevy_render:📷:bundle::Camera3d`. consider registering the type using `app.register_type::<T>()`', /home/jakob/dev/rust/contrib/bevy/bevy/crates/bevy_scene/src/scene_spawner.rs:332:35``.

## Solution

Register the camera types to fix the panic.
This commit is contained in:
Jakob Hellermann 2022-03-20 21:54:11 +00:00
parent cd694c0d08
commit 685b6e59be
2 changed files with 9 additions and 4 deletions

View File

@ -1,18 +1,21 @@
use super::{CameraProjection, ScalingMode};
use crate::{
camera::{Camera, DepthCalculation, OrthographicProjection, PerspectiveProjection},
primitives::Frustum,
view::VisibleEntities,
};
use bevy_ecs::reflect::ReflectComponent;
use bevy_ecs::{bundle::Bundle, prelude::Component};
use bevy_math::Vec3;
use bevy_reflect::Reflect;
use bevy_transform::components::{GlobalTransform, Transform};
use super::{CameraProjection, ScalingMode};
#[derive(Component, Default)]
#[derive(Component, Default, Reflect)]
#[reflect(Component)]
pub struct Camera3d;
#[derive(Component, Default)]
#[derive(Component, Default, Reflect)]
#[reflect(Component)]
pub struct Camera2d;
/// Component bundle for camera entities with perspective projection

View File

@ -28,6 +28,8 @@ impl Plugin for CameraPlugin {
.register_type::<ScalingMode>()
.register_type::<DepthCalculation>()
.register_type::<Aabb>()
.register_type::<Camera3d>()
.register_type::<Camera2d>()
.add_system_to_stage(
CoreStage::PostUpdate,
crate::camera::camera_system::<OrthographicProjection>,