ICameraService
Camera Service
Interface
This service provides access to all camera related functionality: Main camera state, player camera settings, camera shake, and target overrides.
In spatial there is a single internally managed Main Camera
, which is driven by various
VirtualCameras
. The default Actor Camera
is a virtual camera that follows the player actor.
This can be overridden using the SpatialVirtualCamera
component.
Spatial limits access to the internal Main Camera
component. This service provides a limited
subset of useful camera properties and functions.
Most properties and methods implement the corresponding member from Unity's Camera
class.
Properties
allowPlayerToSwitchXRCameraMode | Allows a player in XR to switch between first person and third person modes |
cameraToWorldMatrix | Matrix that transforms from camera space to world space (Read Only). Unity docs |
firstPersonFov | The field of view while the actor camera is in first person mode. |
forceFirstPerson | When true the actor camera will be forced into first person mode. |
forward | The world space forward vector of the main camera |
kickDecay | The speed at which camera kicks return to zero. |
lockCameraRotation | When true the user will be unable to rotate the actor camera. |
maxZoomDistance | The maximum 3rd person camera zoom distance for the actor camera. |
minZoomDistance | The minimum 3rd person camera zoom distance for the actor camera. |
pixelHeight | How tall is the camera in pixels (not accounting for dynamic resolution scaling) (Read Only). Unity docs |
pixelWidth | How wide is the camera in pixels (not accounting for dynamic resolution scaling) (Read Only). Unity docs |
position | The world position of the main camera |
projectionMatrix | Gets the projection matrix of the camera. (Read Only). Unity docs |
rect | Main camera rect (Read Only). |
rotation | The world rotation of the main camera |
rotationMode | The method of rotation for the actor camera with respect to player inputs. How should the camera be controlled? |
scaledPixelHeight | How tall is the camera in pixels (accounting for dynamic resolution scaling) (Read Only). Unity docs |
scaledPixelWidth | How wide is the camera in pixels (accounting for dynamic resolution scaling) (Read Only). Unity docs |
shakeAmplitude | The intensity of camera shakes. |
shakeFrequency | The speed at which camera shakes vibrate |
targetOverride | The current transform overriding the actor camera. |
thirdPersonFov | The field of view while the actor camera is in third person mode. |
thirdPersonOffset | A translation offset applied to the actor camera in relation to the player actor. This value is rotated with the look direction, meaning a value of (1,0,0) will always keep the player on the left side of the screen. |
velocity | Get the world-space speed of the camera (Read Only). Unity docs |
virtualCameraBlendTime | The blend time in seconds for virtual camera transitions. Default is 0.6 seconds. |
wobbleAmplitude | The intensity of camera wobbles. Wobbles are low frequency shakes. |
wobbleFrequency | The speed at which camera wobbles vibrate. Wobbles are low frequency shakes. |
worldToCameraMatrix | Matrix that transforms from world to camera space. (Read Only). Unity docs |
xrCameraMode | The camera mode for players using an XR headset Note that this changing this will not have effect while a virtual camera is currently rendering |
zoomDistance | The current 3rd person camera distance from the player actor. |
Methods
CalculateFrustumCorners(Rect, float, MonoOrStereoscopicEye, Vector3[]) | Given viewport coordinates, calculates the view space vectors pointing to the four frustum corners at the specified camera depth. Unity docs |
CalculateFrustumPlanes() | Calculates frustum planes using the worldToProjection matrix from the main camera. Equivalent to
|
CalculateObliqueMatrix(Vector4) | Calculates and returns oblique near-plane projection matrix. Unity docs |
ClearTargetOverride() | Clear the current actor camera target override. |
CopyFromMainCamera(Camera) | Returns a copy of the main camera. This is useful for creating a new camera with the same properties and transform as the main camera. Unity docs |
GetStereoProjectionMatrix(StereoscopicEye) | Gets the projection matrix of a specific left or right stereoscopic eye. (Read Only). Unity docs |
GetStereoViewMatrix(StereoscopicEye) | Gets the left or right view matrix of a specific stereoscopic eye. (Read Only). Unity docs |
Kick(Vector2) | Apply a temporary angular offset to the player camera, think Given a zero-ed out initial rotation, the camera will rotate to the given degrees offset, then return
to zero over time. The rotation is applied with a parabolic function over time using |
ScreenPointToRay(Vector3) | Returns a ray going from camera through a screen point. Unity docs |
ScreenPointToRay(Vector3, MonoOrStereoscopicEye) | Returns a ray going from camera through a screen point. Unity docs |
ScreenToViewportPoint(Vector3) | Transforms position from screen space into viewport space. Unity docs |
ScreenToWorldPoint(Vector3) | Transforms a point from screen space into world space, where world space is defined as the coordinate system at the very top of your game's hierarchy. Unity docs |
ScreenToWorldPoint(Vector3, MonoOrStereoscopicEye) | Transforms a point from screen space into world space, where world space is defined as the coordinate system at the very top of your game's hierarchy. Unity docs |
SetTargetOverride(Transform, SpatialCameraMode) | Override the actor camera to follow a given transform. |
Shake(Vector3) | Apply a high frequency shake to the player camera and all virtual cameras. Good for short, low to high intensity impacts. |
Shake(float) | Apply a high frequency shake to the player camera and all virtual cameras. Good for short, low to high intensity impacts. |
ViewportPointToRay(Vector3) | Returns a ray going from camera through a viewport point. Unity docs |
ViewportPointToRay(Vector3, MonoOrStereoscopicEye) | Returns a ray going from camera through a viewport point. Unity docs |
ViewportToScreenPoint(Vector3) | Transforms position from viewport space into screen space. Unity docs |
ViewportToWorldPoint(Vector3) | Transforms position from viewport space into world space. Unity docs |
Wobble(Vector3) | Apply a low frequency shake to the player camera and all virtual cameras. Good for longer high intensity impacts.
Makes the camera feel |
Wobble(float) | Apply a low frequency shake to the player camera and all virtual cameras. Good for longer high intensity impacts.
Makes the camera feel |
WorldToScreenPoint(Vector3) | Transforms position from world space into screen space. Unity docs |
WorldToScreenPoint(Vector3, MonoOrStereoscopicEye) | Transforms position from world space into screen space. Unity docs |
WorldToViewportPoint(Vector3) | Transforms position from world space into viewport space. Unity docs |
WorldToViewportPoint(Vector3, MonoOrStereoscopicEye) | Transforms position from world space into viewport space. Unity docs |