reckfellENGINE

XRCamera3D

Camera receiving a positional tracker’s default pose.

On this page
class XRCamera3DReckfellSharpInherits Camera3D

XRCamera3D is a rig camera, not a controller. Its constructor already selects Tracker=head, ProcessMode=Always and PhysicsInterpolationMode=Off. Preserve these tracking modes and parent it directly under XROrigin3D.

The camera receives the selected tracker’s default pose and uses its GetAdjustedTransform as the local transform. Other poses such as aim are ignored. The parent adds gameplay origin once. Tracker selection uses a name, not a numeric ID.

Pose loss or an unavailable new tracker does not clear the previous transform. The camera has no XREntity3D GetHasTrackingData flag: inspect its tracker’s GetPose("default") and that pose’s HasTrackingData. Do not dispose borrowed objects. A camera does not establish stereo output; a working XR interface and UseXR viewport are required.

The XR path manages projection. In current source the inherited screen project/unproject/frustum helpers use the first view during XR; do not treat them as a universal result for both eyes. This limitation was source-reviewed, not headset-tested.

Defaults, default-pose selection, transforms and unbinding were checked with a synthetic tracker. Real poses, projection, stereo images and paused behavior were not tested. Setup: XR startup.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

XRCamera3DConstructor
# XRCamera3D
C#
public XRCamera3D();

Creates a camera with Tracker=head, ProcessMode=Always and physics interpolation disabled. The constructor already sets these modes. Stereo requires an XROrigin3D parent, working XR interface and XR viewport; construction alone supplies none of those.

Properties1

TrackerProperty
# Tracker
C#
public StringName Tracker { get; set; }

Positional tracker name, initially head. The camera selects its default pose; numeric IDs are not used. Changing it unbinds the old tracker and binds an available new one. If absent, the last transform remains; the name alone does not establish tracking.

Methods2

GetTrackerStringName
# GetTracker
C#
public StringName GetTracker();

Returns the configured tracker name, initially head. Does not report current pose availability; inspect tracker state separately.

Returns StringName

Configured tracker name; alone it does not establish tracking.

SetTrackervoid
# SetTracker
C#
public void SetTracker(StringName trackerName);

Positional tracker name, initially head. The camera selects its default pose; numeric IDs are not used. Changing it unbinds the old tracker and binds an available new one. If absent, the last transform remains; the name alone does not establish tracking.

Parameters
NameTypeDefault
trackerNameStringName—
trackerName

Exact positional tracker name; the camera uses its default pose.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.