Class CinemachineOrbitalTransposer
This is a CinemachineComponent in the the Body section of the component pipeline. Its job is to position the camera in a variable relationship to a the vcam's Follow target object, with offsets and damping.
This component is typically used to implement a camera that follows its target. It can accept player input from an input device, which allows the player to dynamically control the relationship between the camera and the target, for example with a joystick.
The OrbitalTransposer introduces the concept of Heading, which is the direction in which the target is moving, and the OrbitalTransposer will attempt to position the camera in relationship to the heading, which is by default directly behind the target. You can control the default relationship by adjusting the Heading Bias setting.
If you attach an input controller to the OrbitalTransposer, then the player can also control the way the camera positions itself in relation to the target heading. This allows the camera to move to any spot on an orbit around the target.
Inheritance
Inherited Members
Namespace: Cinemachine
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
public class CinemachineOrbitalTransposer : CinemachineTransposer
Fields
m_Heading
The definition of Forward. Camera will follow behind.
Declaration
public CinemachineOrbitalTransposer.Heading m_Heading
Field Value
Type | Description |
---|---|
CinemachineOrbitalTransposer.Heading |
m_HeadingIsSlave
Drive the x-axis setting programmatically. Automatic heading updating will be disabled.
Declaration
public bool m_HeadingIsSlave
Field Value
Type | Description |
---|---|
System.Boolean |
m_RecenterToTargetHeading
Parameters that control Automating Heading Recentering
Declaration
public AxisState.Recentering m_RecenterToTargetHeading
Field Value
Type | Description |
---|---|
AxisState.Recentering |
m_XAxis
Axis representing the current heading. Value is in degrees and represents a rotation about the up vector
Declaration
public AxisState m_XAxis
Field Value
Type | Description |
---|---|
AxisState |
Methods
GetAxisClosestValue(Vector3, Vector3)
What axis value would we need to get as close as possible to the desired cameraPos?
Declaration
public float GetAxisClosestValue(Vector3 cameraPos, Vector3 up)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | cameraPos | camera position we would like to approximate |
Vector3 | up | world up |
Returns
Type | Description |
---|---|
System.Single | The best value to put into the X axis, to approximate the desired camera pos |
GetTargetCameraPosition(Vector3)
Internal API for the Inspector Editor, so it can draw a marker at the target
Declaration
public override Vector3 GetTargetCameraPosition(Vector3 worldUp)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | worldUp |
Returns
Type | Description |
---|---|
Vector3 |
Overrides
MutateCameraState(ref CameraState, Single)
Positions the virtual camera according to the transposer rules.
Declaration
public override void MutateCameraState(ref CameraState curState, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
CameraState | curState | The current camera state |
System.Single | deltaTime | Used for damping. If less than 0, no damping is done. |
Overrides
OnTargetObjectWarped(Transform, Vector3)
This is called to notify the us that a target got warped, so that we can update its internal state to make the camera also warp seamlessy.
Declaration
public override void OnTargetObjectWarped(Transform target, Vector3 positionDelta)
Parameters
Type | Name | Description |
---|---|---|
Transform | target | The object that was warped |
Vector3 | positionDelta | The amount the target's position changed |
Overrides
OnTransitionFromCamera(ICinemachineCamera, Vector3, Single, ref CinemachineVirtualCameraBase.TransitionParams)
Notification that this virtual camera is going live. Base class implementation does nothing.
Declaration
public override bool OnTransitionFromCamera(ICinemachineCamera fromCam, Vector3 worldUp, float deltaTime, ref CinemachineVirtualCameraBase.TransitionParams transitionParams)
Parameters
Type | Name | Description |
---|---|---|
ICinemachineCamera | fromCam | The camera being deactivated. May be null. |
Vector3 | worldUp | Default world Up, set by the CinemachineBrain |
System.Single | deltaTime | Delta time for time-based effects (ignore if less than or equal to 0) |
CinemachineVirtualCameraBase.TransitionParams | transitionParams |
Returns
Type | Description |
---|---|
System.Boolean | True if the vcam should do an internal update as a result of this call |
Overrides
OnValidate()
Declaration
protected override void OnValidate()
Overrides
UpdateHeading(Single, Vector3, ref AxisState, ref AxisState.Recentering, Boolean)
Update the X axis and calculate the heading. This can be called by a delegate
with a custom axis.
Used for damping. If less than 0, no damping is done.
World Up, set by the CinemachineBrain
Declaration
public float UpdateHeading(float deltaTime, Vector3 up, ref AxisState axis, ref AxisState.Recentering recentering, bool isLive)
Parameters
Type | Name | Description |
---|---|---|
System.Single | deltaTime | |
Vector3 | up | |
AxisState | axis | |
AxisState.Recentering | recentering | |
System.Boolean | isLive |
Returns
Type | Description |
---|---|
System.Single |