(added practical example to SScene .OnPlayerJoin) |
(Added simple example to SScene .CreateGameObject(resource) .OnPlayerLeave) |
||
Line 26: | Line 26: | ||
{{ScriptFunction|SGameObject|CreateGameObject|(string name);|Creates a new empty game object with the name 'Name' and returns a reference|5= | {{ScriptFunction|SGameObject|CreateGameObject|(string name);|Creates a new empty game object with the name 'Name' and returns a reference|5= | ||
<pre>newObject = Space.Scene.CreateGameObject("potato")</pre>}} | <pre>newObject = Space.Scene.CreateGameObject("potato")</pre>}} | ||
− | {{ScriptFunction|SGameObject|CreateGameObject|([[Scripting/SResource|SResource]] resource);|Creates a game object from the specified resource}} | + | {{ScriptFunction|SGameObject|CreateGameObject|([[Scripting/SResource|SResource]] resource);|Creates a game object from the specified resource|5= |
+ | <pre>res = Space.GetResource("Tomato") | ||
+ | --declare it as resource in your Scripting Runtime component | ||
+ | Space.Scene.CreateGameObject(res) | ||
+ | </pre>}} | ||
{{ScriptFunction|string|Name|{ get; }|Returns the name of the current region|5= | {{ScriptFunction|string|Name|{ get; }|Returns the name of the current region|5= | ||
<pre>RegionName = Space.Scene.Name </pre>}} | <pre>RegionName = Space.Scene.Name </pre>}} | ||
Line 48: | Line 52: | ||
--Note that this is client side, you will not trigger this event, | --Note that this is client side, you will not trigger this event, | ||
--the player that joins next will trigger it.</pre>}} | --the player that joins next will trigger it.</pre>}} | ||
− | {{ScriptFunction|void|OnPlayerLeave|(Action<long> callback)|Event which fires whenever a player leaves the region}} | + | {{ScriptFunction|void|OnPlayerLeave|(Action<long> callback)|Event which fires whenever a player leaves the region|5= |
+ | <pre> function playerLeft(id) | ||
+ | -- | ||
+ | end | ||
+ | Space.Scene.OnPlayerLeave(playerLeft) </pre>}} | ||
{{Scripting Navbox}} | {{Scripting Navbox}} |
The SScene class represents the region the user is currently in.
Finds a single Game Object matching 'Name' and returns it. Can use '/' characters to designate a path (e.g. 'Parent/Child' returns Child with 'Parent')
hand = Space.Scene.Find("Hand"); --This returns the GameObject named Hand. hand = Space.Scene.Find("/Hand"); --This returns the GameObject named Hand. --Hand must not have a parent in the Hierarchy view. hand = Space.Scene.Find("/Monster/Arm/Hand"); --This returns the GameObject named Hand, --which is a child of Arm > Monster. --Monster must not have a parent in the Hierarchy view. hand = Space.Scene.Find("Monster/Arm/Hand"); --This returns the GameObject named Hand, --which is a child of Arm > Monster.
Returns the current player avatar. If this script is calling this upon initialisation, the Player may not exist yet, and you will want to wait a few frames until the avatar is present before continuing.
CurrentPlayer = Space.Scene.PlayerAvatar
Returns a list of Avatars in the scene
avatars = Space.Scene.Avatars
Returns a list of Objects in the scene. IMPORTANT: This function is slow, you should cache the result and avoid calling this every frame.
objects = Space.Scene.Objects
Creates a new empty game object with the name 'Name' and returns a reference
newObject = Space.Scene.CreateGameObject("potato")
Creates a game object from the specified resource
res = Space.GetResource("Tomato") --declare it as resource in your Scripting Runtime component Space.Scene.CreateGameObject(res)
Returns the name of the current region
RegionName = Space.Scene.Name
Returns the URL of the current region
RegionUrl = Space.Scene.Url
Returns the avatar ID of the regions owner
RegionOwner = Space.Scene.Owner
Returns whether the current player is the owner of the region
isOwner = Space.Scene.PlayerIsOwner
Event which fires whenever a player joins the region
--Place this script in a UIText object and it will --update itself with the name of the last player joined function updateText(Av) --we include "Av" here because the event gives us a reference to the Avatar that joined Space.Host.ExecutingObject.UIText.Text= "Last player joined: " .. Av.Username end Space.Scene.OnPlayerJoin(updateText) -- updateText will now be called everytime a player joins --Note that this is client side, you will not trigger this event, --the player that joins next will trigger it.
Event which fires whenever a player leaves the region
function playerLeft(id) -- end Space.Scene.OnPlayerLeave(playerLeft)
|