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),
    ),
  ],
);