cameraCollision property
ComponentSchema<CameraCollision3D>
get
cameraCollision
Implementation
static ComponentSchema<CameraCollision3D>
get cameraCollision => ComponentSchema<CameraCollision3D>(
type: 'CameraCollision3D',
id: 'camera_collision_3d_5d27c0e1',
create: CameraCollision3D.new,
hints: ComponentHints(
dimensions: Dimensions.threeD,
name: 'Camera Collision 3D',
group: _group,
description:
'Keeps a virtual camera out of walls: pulled in towards its target when something is in the way, eased back out once clear.',
icon: Icons.videocam_off_outlined,
accentColor: const Color(0xFF40E0D0),
fields: {
'radius': const FieldHint(
label: 'Radius',
scrub: ScrubHint(step: 0.05, fractionDigits: 2, suffix: 'm'),
),
'minDistance': const FieldHint(
label: 'Closest',
scrub: ScrubHint(step: 0.05, fractionDigits: 2, suffix: 'm'),
),
'recover': const FieldHint(
label: 'Ease out',
description: 'Seconds to move back out once the way is clear.',
scrub: ScrubHint(step: 0.05, fractionDigits: 2, suffix: 's'),
),
'layerMask': const FieldHint(label: 'Blocked by'),
'offset': const FieldHint(
label: 'Looks from',
description: 'From the target, without an orbit pivot (-Y is up).',
),
},
),
fields: [
_decimal<CameraCollision3D>(
'radius',
(c) => c.radius,
(c, v) => c.radius = v,
min: 0,
),
_decimal<CameraCollision3D>(
'minDistance',
(c) => c.minDistance,
(c, v) => c.minDistance = v,
min: 0,
),
_decimal<CameraCollision3D>(
'recover',
(c) => c.recover,
(c, v) => c.recover = v,
min: 0,
),
SchemaField(
name: 'layerMask',
kind: FieldTypes.physicsLayerMask,
read: (c) => (c as CameraCollision3D).layerMask,
write: (c, v) =>
(c as CameraCollision3D).layerMask = (v as num).toInt(),
),
_vector<CameraCollision3D>(
'offset',
(c) => c.offset,
(c, v) => c.offset = Vector3.copy(v),
),
],
);