Ashasekayi (Talk | contribs) |
Ashasekayi (Talk | contribs) |
||
Line 25: | Line 25: | ||
{{ScriptFunction|void|SetShardProperty|(string key, string value);|Sets a property named 'key' of the region to 'value'. Will persist until the region is shut down or restarted. (Use SPersistence for longer term storage)|5=local scriptedObject = Space.Host.ExecutingObject;<br>scriptedObject.SubscribeToEvents();<br><br>local testMsg = "Hello";<br>local updateTextUI = function()<br> Space.Network.SetShardProperty("testKey", testMsg);<br>end<br><br>scriptedObject.OnMouseDown(updateTextUI);<br><br>-- Once this object is clicked, it will create a shard property with the key "testKey" and give it the value of "Hello".}} | {{ScriptFunction|void|SetShardProperty|(string key, string value);|Sets a property named 'key' of the region to 'value'. Will persist until the region is shut down or restarted. (Use SPersistence for longer term storage)|5=local scriptedObject = Space.Host.ExecutingObject;<br>scriptedObject.SubscribeToEvents();<br><br>local testMsg = "Hello";<br>local updateTextUI = function()<br> Space.Network.SetShardProperty("testKey", testMsg);<br>end<br><br>scriptedObject.OnMouseDown(updateTextUI);<br><br>-- Once this object is clicked, it will create a shard property with the key "testKey" and give it the value of "Hello".}} | ||
− | {{ScriptFunction|string|GetShardProperty|(string key);|Gets a previously set key.}} | + | {{ScriptFunction|string|GetShardProperty|(string key);|Gets a previously set key.5=local scriptedObject = Space.Host.ExecutingObject;<br>scriptedObject.SubscribeToEvents();<br><br>local textValue = Space.Host.GetReference("Text");<br>local retrieved;<br><br>local updateTextUI = function()<br> retrieved = Space.Network.GetShardProperty("testProp");<br>end<br><br>-- this method is called every frame, once "retrieved" gets a value, it displays in text<br>local onUpdateMethod = function()<br> updateTextUI(); <br> if retrieved ~= nil then <br> textValue.UIText.Text = "Retrieved msg: " .. retrieved ;<br> end <br>end<br><br>scriptedObject.OnUpdate(onUpdateMethod);}} |
{{ScriptFunction|void|SubscribeToNetwork|(string key, Action<SNetworkMessage> callback);|Subscribes to network messages on 'key', will fire a [[Scripting/SNetworkMessage]] whenever a matching message is received}} | {{ScriptFunction|void|SubscribeToNetwork|(string key, Action<SNetworkMessage> callback);|Subscribes to network messages on 'key', will fire a [[Scripting/SNetworkMessage]] whenever a matching message is received}} | ||
{{Scripting Navbox}} | {{Scripting Navbox}} |
The SNetwork class allows you to send messages to other users in the region, and persist/retrieve variables which have been stored within the region.
Sends a networked message to every client with a subscriber listening on 'key'. The message itself can be a dictionary/table containing two columns and any network serializable type (string, float, int, byte, bool and arrays of those types)
This is a modified version of the example for *.Renderer.Material.SetTexture that demonstrates networking.
note that this example applies also to SubscribeToNetwork.
server = "https://middleware.systems/"
obj = Space.Host.GetReference("Gino")
Space.Network.SubscribeToNetwork("smack", onSmack)
function hithere()
resrc = Space.WebServices.GetImage(server .. image) obj.Renderer.Material.SetTexture("_MainTex", resrc) Space.Network.SendNetworkMessage("smack",{'smack'})
end
function update()
resrc = Space.WebServices.GetImage(server .. "mrlee.jpg") obj.Renderer.Material.SetTexture("_MainTex", resrc)
end
function onSmack()
update()end
Sets a property named 'key' of the region to 'value'. Will persist until the region is shut down or restarted. (Use SPersistence for longer term storage)
No documentation
Subscribes to network messages on 'key', will fire a Scripting/SNetworkMessage whenever a matching message is received
|