|
|
(3 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | The SCameraManager class allows you to take and manipulate the users camera. Combine with [[Scripting/SCamera]] to create 2D side-scrolling regions!
| + | This page has moved to: https://docs.sine.space/v/scripting/client-scripting/scene/scameramanager |
− | | + | |
− | ==Members==
| + | |
− | {{ScriptFunction|bool|IsLocked|{ get; }|Returns true if the Camera is locked and can be manipulated by this script.|5=
| + | |
− | obj = Space.Host.ExecutingObject;<br><br>
| + | |
− | Space.Camera.LockCamera (obj); <br>
| + | |
− | Space.Log(Space.Camera.IsLocked); <br>
| + | |
− | ''--prints "True" to the console''}}
| + | |
− | | + | |
− | {{ScriptFunction|void|ReleaseCamera|();|Relinquishes control of the Camera back to Space| 5=
| + | |
− | obj = Space.Host.ExecutingObject;<br><br>
| + | |
− | | + | |
− | ''-- Let's lock the camera for a moment''<br>
| + | |
− | Space.Camera.LockCamera (obj);<br>
| + | |
− | ''-- Now we can release it''<br>
| + | |
− | if Space.Camera.IsLocked then<br>
| + | |
− | :Space.Camera.ReleaseCamera ();<br> | + | |
− | :Space.Log("Camera released");<br> | + | |
− | end}}
| + | |
− | | + | |
− | {{ScriptFunction|void|LockCamera|(SGameObject owner);|Takes control of the Camera as long as 'owner' exists in the scene, or until ReleaseCamera() has been called. Using the Host runtime as the owner is often a good practice.|5=
| + | |
− | obj = Space.Host.ExecutingObject;<br><br>
| + | |
− | Space.Camera.LockCamera (obj);<br>
| + | |
− | ''-- If no camera position/orientation is set upon locking, the camera will lock on the avatar.''}}
| + | |
− | | + | |
− | {{ScriptFunction|void|SetCameraPositionOrientation|(SVector position, SQuaternion orientation);|Forces the camera to be at position facing orientation for the frame. Needs to be called every frame.|5=
| + | |
− | obj = Space.Host.ExecutingObject;<br>
| + | |
− | local VectorPos = Vector.New(0,0,0);<br>
| + | |
− | local VectorRot = Quaternion.Euler(-60,0,0);<br><br>
| + | |
− | Space.Camera.LockCamera (obj);<br>
| + | |
− | Space.Camera.SetCameraPositionOrientation (VectorPos,VectorRot);<br>
| + | |
− | ''-- Now the camera is positioned at the global origin and is facing the sky at 60 degrees.''
| + | |
− | }}
| + | |
− | | + | |
− | | + | |
− | {{ScriptFunction|SRay|ScreenCoordinatesToRay|(SVector screenCoordinates);|Returns a ray going from camera through a screen point.|5=
| + | |
− | obj = Space.Host.ExecutingObject;<br>
| + | |
− | local cameraRay = Space.Camera.ScreenCoordinatesToRay (Vector.New(0,0,0));<br><br>
| + | |
− | Space.Log(cameraRay.Origin);<br>
| + | |
− | Space.Log(cameraRay.Direction);<br>
| + | |
− | ''-- 2 vectors (location of the ray origin (camera coordinates) and direction of the ray towards the origin) are printed to the console.''<br>
| + | |
− | }}
| + | |
− | | + | |
− | {{Scripting Navbox}}
| + | |