SHost
Index
Functions Index
void InvokeEvent (string name)
void Stop ()
void InvokeDelayed (Closure c, float delay)
void StartCoroutine (DynValue value, DynValue parameter=default(DynValue), string name=null) void StartCoroutine (string value, DynValue parameter=default(DynValue)
bool ReferenceExists (string name)
bool ReferenceExistsAndNotEmpty (string name)
SGameObject GetReference (string name)
void Evaluate (string script)
Properties Index
SGameObject ExecutingObject get
string Language get
Functions
InvokeEvent
void InvokeEvent (string name)
Invokes a UnityEvent attached to the Scripting Runtime component this script is executing in.
Space.Host.InvokeEvent("EventName")
Stop
void Stop ()
Pauses the current script until it is manually restarted, at the end of the current function/method; consider using return as well.
Space.Host.Stop()
local trans=Space.Host.ExecutingObject;
trans.SubscribeToEvents();
function Running()
Space.Log("Running")
end
trans.OnUpdate(Running)
Space.Host.InvokeDelayed(function()
Space.Log("Stop")
Space.Host.Stop()
end,5)
--After print the "Stop","Running" won't display anymore.
InvokeDelayed
void InvokeDelayed (Closure c, float delay)
Invoke the closure after the delayed time.
Space.Host.InvokeDelayed(AFunction, 10)
--Clicking this object makes it destroy itself after 5 seconds
thisObject = Space.Host.ExecutingObject
function DeleteFunction()
thisObject.Destroy()
end
function OnClickFunction()
Space.Host.InvokeDelayed(DeleteFunction,10)
end
thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)
StartCoroutine
void StartCoroutine (DynValue value, DynValue parameter=default(DynValue), string name=null) void StartCoroutine (string value, DynValue parameter=default(DynValue), string name=null)
Executes the specified function as a coroutine.
Space.Host.StartCoroutine(aFunction)
--or
Space.Host.StartCoroutine("aFunctionName")
local function myCoroutine()
-- The yield statement is a special kind of return, that ensures that the function will continue from the line once the coroutine resumes.
-- Placing a float value inside of the yield will result in a delayed execution.
-- Example: coroutine.yield(0.5) will wait 0.5 seconds before continuing the execution of the coroutine.
-- This will print the current players active time.
Space.Log(Space.Time);
-- Execution of this coroutine will be halted for 10 seconds.
coroutine.yield(10);
-- This will print the current players active time, which will be 10 seconds greater then the previous as a result of the yield
Space.Log(Space.Time);
end
Space.Host.StartCoroutine(myCoroutine);
ReferenceExists
bool ReferenceExists (string name)
Return true when the reference object exists and is not empty.
referenceExists = Space.Host.ReferenceExists("the reference name")
ReferenceExistsAndNotEmpty
bool ReferenceExistsAndNotEmpty (string name)
Return true when the reference object exists and is not empty.
existsNotEmpty = Space.Host.ReferenceExistsAndNotEmpty("obj")
--Print "false" to console if didn't set the object named "obj" to the Object References or attach the reference to "obj".
GetReference
SGameObject GetReference (string name)
Pulls a reference from the scripting runtime component's "References" section by it's name.
name
string
The name of the reference as set within the Scripting Runtime component (references section).
theObject = Space.Host.GetReference("referenceName")
--Clicking this object makes it destroy the object we linked in the references section
thisObject = Space.Host.ExecutingObject
dObject = Space.Host.GetReference("theObjectToBeDestroyed")
function OnClickFunction()
dObject.Destroy()
end
thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)
Evaluate
void Evaluate (string script)
Executes given Lua code/script. (white-label only)
Space.Host.Evaluate('Space.Log("test")')
Properties
ExecutingObject
SGameObject ExecutingObject get
A reference to the GameObject that is executing this script. (The GameObject that this Scripting Runtime component is attached to).
object = Space.Host.ExecutingObject
Language
string Language get
Returns the English name for the users language, e.g. 'English', 'French', 'Chinese'
lang = Space.Host.Language
--Makes a UIText show a different message according to the client's language
TextObject = Space.Host.GetReference("TextObject") --add to references section of Scripting Runtime component
language = Space.Host.Language
if language == "English" then
TextObject.UIText.Text = "Welcome!"
elseif language == "Dutch" then
TextObject.UIText.Text = "welkom!"
elseif language == "French" then
TextObject.UIText.Text = "bienvenue!"
else
TextObject.UIText.Text = "Welcome!"
end