跳到主要内容

SCameraManager

Index​

Functions Index​

Function Name
void LockCamera (SGameObject owner)
void ReleaseCamera ()
void SetCameraPositionOrientation (SVector position, SQuaternion orientation)
SRay ScreenCoordinatesToRay (SVector screenCoordinates)
SVector ScreenCoordinatesToWorld (SVector screenCoordinates)
SVector WorldCoordinatesToScreen (SVector coordinates)

void ShakeCamera (float magnitude, float time)
void ShakeCamera (float amplitude, float frequency, float time)

Properties Index​

Property
bool IsLocked get
SGameObject MainCamera get
SGameObject ActiveVirtualCamera get

Properties​

IsLocked​

bool IsLocked get

Is the Camera locked?

isCameraLocked = Space.Camera.IsLocked

MainCamera​

SGameObject MainCamera get

Note, this property is generally read-only. It's position is driven by internal code.

mainCamera = Space.Camera.MainCamera

ActiveVirtualCamera​

SGameObject ActiveVirtualCamera get

The currently active Cinemachine Virtual Camera game object.

currentCamera = Space.Camera.ActiveVirtualCamera

Functions​

LockCamera​

void LockCamera ()

Calling this function stops the Camera from being controlled by the viewer, and allows us to control it until ReleaseCamera() is called.

Space.Camera.LockCamera()

ReleaseCamera​

void ReleaseCamera ()

Calling this function reverses the LockCamera() call and returns control of the Camera to the viewer.

Space.Camera.ReleaseCamera()

SetCameraPositionOrientation​

void SetCameraPositionOrientation (SVector position, SQuaternion orientation)

Sets the Camera's position and rotation. This function requires the camera to be locked.

ParameterTypeDescription
positionSVectorThe World Postion of the camera GameObject.
orientationSQuaternionThe World Rotation of the camera GameObject.
Space.Camera.SetCameraPositionOrientation (Vector.New(0,0,0),Quaternion.Euler(-60,0,0));

ScreenCoordinatesToRay​

SRay ScreenCoordinatesToRay (SVector screenCoordinates)

Returns a ray going from camera through a screen point.

ParameterTypeDescription
cameraRay = Space.Camera.ScreenCoordinatesToRay (Vector.New(0,50,0))
--this script will make this object jump to wherever you right click
--(Example: moving objects with right click )

thisGameObject = Space.Host.ExecutingObject


OnUpdate = function()
if Space.Input.GetMouseDown(1) then
clickRay = Space.Camera.ScreenCoordinatesToRay(Space.Input.MousePosition)
rayCastHit = Space.Physics.RayCastSingle(clickRay.Origin, clickRay.Direction, 50.0)
thisGameObject.WorldPosition = rayCastHit.Position
end
end

thisGameObject.SubscribeToEvents()
thisGameObject.OnUpdate(OnUpdate)

ScreenCoordinatesToWorld​

SVector ScreenCoordinatesToWorld (SVector screenCoordinates)

Transforms a point from screen space into world space.

ParameterTypeDescription
obj = Space.Host.ExecutingObject;
Space.Log(Space.Camera.ScreenCoordinatesToWorld(Vector.New(0.5,0.5,0)).ToString());

-- Print 3 worldspace vectors created by screen space point to the console.

WorldCoordinatesToScreen​

SVector WorldCoordinatesToScreen (SVector coordinates)

Function Description

ParameterTypeDescription
local trans = Space.Host.ExecutingObject;
Space.Log(Space.Camera.WorldCoordinatesToScreen(trans.WorldPosition).ToString());

-- Print the position created by world space point to the console.

ShakeCamera​

void ShakeCamera (float magnitude, float time)
void ShakeCamera (float amplitude, float frequency, float time)

Function Description

ParameterTypeDescription
Space.Camera.ShakeCamera(1, 1.0)
--or
Space.Camera.ShakeCamera(2, 1, 1.0)