SInput

Functions

GetKeyDown

bool GetKeyDown (string key)

Returns true if 'key' was pressed during this frame.

Parameter
Type
Description

key

string

thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.GetKeyDown("space") then
 Space.Log("Jump Key Down")
  end
end

thisGameObject.OnUpdate(OnUpdate) 

GetKeyUp

bool GetKeyUp (string key)

Returns true if 'key' is no longer pressed during this frame (but was in the last).

Parameter
Type
Description

key

string

thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.GetKeyUp("space") then
 Space.Log("Jump Key Released")
  end
end

thisGameObject.OnUpdate(OnUpdate)

GetKey

bool GetKey (string key)

Returns true if 'key' is being held pressed.

Parameter
Type
Description

key

bool

thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.GetKey("space") then
 Space.Log("Jump Key Held")
  end
end

thisGameObject.OnUpdate(OnUpdate)

GetMouseDown

bool GetMouseDown (int button)

Returns true if mouse 'button' was pressed during this frame.

Parameter
Type
Description

button

int

button values are 0 for the primary button (often the left button), 1 for secondary button, and 2 for the middle button.

if Space.Input.GetMouseDown(1) then
  Space.Log("Right Mouse button pressed in this frame")
end
--this script will make this object jump to wherever you 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.OnUpdate(OnUpdate)  

GetMouseUp

bool GetMouseUp (int button)

Returns true if mouse 'button' is no longer pressed during this frame (but was in the last).

Parameter
Type
Description

button

int

button values are 0 for the primary button (often the left button), 1 for secondary button, and 2 for the middle button.

if Space.Input.GetMouseUp(1) then
  Space.Log("Right Mouse button was just unpressed")
end

GetMouseHold

bool GetMouseHold (int button)

Returns true if mouse 'button' is being held pressed.

Parameter
Type
Description

button

int

button values are 0 for the primary button (often the left button), 1 for secondary button, and 2 for the middle button.

if Space.Input.GetMouseHold(1) then
  Space.Log("Right Mouse button being held")
end
--this script will make this object will follow your ovement while holding right click

thisGameObject = Space.Host.ExecutingObject


OnUpdate = function()
  if Space.Input.GetMouseHold(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.OnUpdate(OnUpdate)  

Vibrate

void Vibrate (float intensity, float duration, bool leftHand)

Vibrates the controller (or phone, or gamepad) if a rumble device is present.

Parameter
Type
Description

intensity

float

Intensity of the vibration from 0.0 to 1.0

duration

float

Duration of the vibration. Maximum 1.0 second.

leftHand

bool

If true the vibration will be on the left hand and if false on the right hand (where applicable)

Space.Input.Vibrate(1,1,false)

Properties

ScrollWheel

float ScrollWheel get

Returns a non-0 value if the mouse wheel is being scrolled, value usually ranges from -1 to 1**.**

scrollWheel = Space.Input.ScrollWheel
--Object will move up and down with scroll wheel movement
thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  thisGameObject.WorldPosition = thisGameObject.WorldPosition + (thisGameObject.Up * Space.Input.ScrollWheel)
end

thisGameObject.OnUpdate(OnUpdate) 

MousePosition

SVector MousePosition get

Returns the current position of the mouse in screen pixels. If on a touch screen device, this will also return the location of the first finger being pressed.

currentMousePos = Space.Input.MousePosition
--Object will follow your mouse movement while holding right click
thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.GetMouseHold(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.OnUpdate(OnUpdate)   

MovementAxis

SVector MovementAxis get

Returns left/right (A/D) movement on X, forward/back (W/S) on Y, and up/down (E/C) on Z.

moveAxis  = Space.Input.MovementAxis
--Object moves according to your AWSD presses

thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.MovementAxis.Y > 0 then
    thisGameObject.WorldPosition = thisGameObject.WorldPosition + thisGameObject.Forward
  elseif Space.Input.MovementAxis.Y < 0 then  
    thisGameObject.WorldPosition = thisGameObject.WorldPosition - thisGameObject.Forward 
  end

  if Space.Input.MovementAxis.X > 0 then
    thisGameObject.WorldPosition = thisGameObject.WorldPosition + thisGameObject.Right
  elseif Space.Input.MovementAxis.X < 0 then  
    thisGameObject.WorldPosition = thisGameObject.WorldPosition - thisGameObject.Right
  end
end

thisGameObject.OnUpdate(OnUpdate) 

TurnAxis

SVector? TurnAxis get

Returns the Turn Axis (-1 to 1 on Vector's X value).

turnAxis = Space.Input.TurnAxis
--makes this object color red if player is turning left
--and color green if player is turning right
--and blue if player is not turning
thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.TurnAxis.X > 0 then
    thisGameObject.Renderer.Material.SetColor("_Color",Color.Red)
  elseif Space.Input.TurnAxis.X < 0 then
    thisGameObject.Renderer.Material.SetColor("_Color",Color.Green)
  elseif Space.Input.TurnAxis.X == 0 then
    thisGameObject.Renderer.Material.SetColor("_Color",Color.Blue)
  end
end

thisGameObject.OnUpdate(OnUpdate)

MouseLook

bool MouseLook get set

Enable or disable Mouse Look feature.

Space.Input.MouseLook = true
--the below script will put your player into MouseLook mode if you are near the object 
--and return you to normal mode if you are far from the object 

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  positionAvatar = Space.Scene.PlayerAvatar.GameObject.WorldPosition
  positionObject = thisGameObject.WorldPosition

  if positionAvatar.InRange(positionObject, 5.0) then
    if Space.Input.MouseLook == false then
      Space.Input.MouseLook = true
    end
  else
    if Space.Input.MouseLook == true then
      Space.Input.MouseLook = false
    end
  end

end  

thisGameObject.OnUpdate(OnUpdate)

MouseX

float MouseX get

Returns a float representing the Mouse/Right Joystick horizontal movement. If the value is positive the movement is upwards. If the value is negative the movement is downwards. The value is derived by multiplying mouse delta with axis sensitivity. This is frame-rate independent; you do not need to be concerned about varying frame-rates when using this value.

MouseX = Space.Input.MouseX
--the below script will rotate this object along the Y axis 
--according to your mouse/right joystick horizontal movement

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  currentY = thisGameObject.WorldRotation.EulerAngles.Y 
  newY = currentY + Space.Input.MouseX
  thisGameObject.WorldRotation = Quaternion.Euler(0, newY, 0)
end

thisGameObject.OnUpdate(OnUpdate) 

MouseY

float MouseY get

Returns a float representing the Mouse/Right Joystick vertical movement. If the value is positive the movement is to the right. If the value is negative the movement is to the left. The value is derived by multiplying mouse delta with axis sensitivity. This is frame-rate independent; you do not need to be concerned about varying frame-rates when using this value.

MouseY = Space.Input.MouseY
--the below script will rotate this object along the Y axis 
--according to your mouse/right joystick vertical movement

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  currentX = thisGameObject.WorldRotation.EulerAngles.X 
  newX = currentX + Space.Input.MouseY
  thisGameObject.WorldRotation = Quaternion.Euler(newX , 0, 0)
end

thisGameObject.OnUpdate(OnUpdate) 

ClickToWalk

SVector? TurnAxis get

Returns the Turn Axis (-1 to 1 on Vector's X value).

turnAxis = Space.Input.TurnAxis
--makes this object color red if player is turning left

Fire

bool Fire get

Return true if primary fire is pressed (Mouselook Mode).

fireIsPressed = Space.Input.Fire
--Create a GameObject from resource when Primary Fire button is pressed
--[Add resource "bullet" as a resource in scripting runtime component]

thisGameObject = Space.Host.ExecutingObject
bullet = Space.GetResource("bullet") 

OnUpdate = function()
  if Space.Input.Fire then
  Space.Scene.CreateGameObject(bullet) 
  end
end


thisGameObject.OnUpdate(OnUpdate)

AltFire

bool AltFire get

Return true if alternative fire is pressed (Mouselook Mode)

altFireIsPressed = Space.Input.AltFire
--Create a GameObject from resource when Alternate Fire button is pressed
--[Add resource "bullet" as a resource in scripting runtime component]

thisGameObject = Space.Host.ExecutingObject
bullet = Space.GetResource("bullet") 

OnUpdate = function()
  if Space.Input.AltFire then
    Space.Scene.CreateGameObject(bullet) 
  end
end

thisGameObject.OnUpdate(OnUpdate)

CursorInUI

bool CursorInUI get

Returns true if the cursor is over the Sinespace UI.

cursorInUI = Space.Input.CursorInUI
--this object is going to listen to your scroll wheel movement and move accordingly
--UNLESS your cursor is on the sinespace UI
--(Example: Scrolling chat won't also move the object)

thisGameObject = Space.Host.ExecutingObject

OnUpdate = function()
  if Space.Input.CursorInUI == false then
    thisGameObject.WorldPosition = thisGameObject.WorldPosition + (thisGameObject.Up * Space.Input.ScrollWheel)
  end
end

thisGameObject.OnUpdate(OnUpdate)  

IsVRAvailable

bool IsVRAvailable get

Returns true if VR is available.

isAvailable = Space.Input.IsVRAvailable

IsVRActive

bool IsVRActive get

Returns true if VR is active.

turnAxis = Space.Input.TurnAxis

VRLeftControllerPosition

SVector? VRLeftControllerPosition get

Returns position of Left VR Controller.

posVRleft = Space.Input.VRLeftControllerPosition

VRRightControllerPosition

SVector? VRRightControllerPosition get

Returns position of Right VR Controller.

posVRright = Space.Input.VRRightControllerPosition

VRLeftControllerRotation

SQuaternion? VRLeftControllerRotation get

Returns rotation of Left VR Controller.

rotVRleft = Space.Input.VRLeftControllerRotation

VRRightControllerRotation

SQuaternion? VRRightControllerRotation get

Returns rotation of Right VR Controller.

rotVRright = Space.Input.VRRightControllerRotation

Input Key Names

Key names follow these naming conventions:

Key family

Naming convention

Letter keys

a, b, c

Number keys

1, 2, 3

Arrow keys

up, down, left, right

Numpad keys

[1], [2], [3], [+], [equals]

Modifier keys

right shift, left shift, right ctrl, left ctrl, right alt, left alt, right cmd, left cmd

Special keys

backspace, tab, return, escape, space, delete, enter, insert, home, end, page up, page down

Function keys

f1, f2, f3

Mouse buttons are named mouse 0, mouse 1, mouse 2, and so on.

Joystick buttons follow these naming conventions:

Button origin

Naming convention

A specific button on any joystick

joystick button 0, joystick button 1, joystick button 2

A specific button on a specific joystick

joystick 1 button 0, joystick 1 button 1, joystick 2 button 0

Last updated

Sinespace® is a registered trademark of Sine Wave Entertainment Ltd, All Rights Reserved.