Ashasekayi (Talk | contribs) |
Ashasekayi (Talk | contribs) |
||
Line 23: | Line 23: | ||
update() | update() | ||
end}} | end}} | ||
− | {{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> <b>Space.Network.SetShardProperty</b>("testKey", testMsg);<br>end<br><br>scriptedObject.OnMouseDown(updateTextUI);<br><br><i>-- Once this object is clicked, it will create a shard property with the key "testKey" and give it the value of "Hello".</i>}} | + | {{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> | ||
+ | <b>Space.Network.SetShardProperty</b>("testKey", testMsg);<br> | ||
+ | end<br><br> | ||
+ | scriptedObject.OnMouseDown(updateTextUI);<br><br> | ||
+ | <i>-- Once this object is clicked, it will create a shard property with the key "testKey" and give it the value of "Hello".</i>}} | ||
{{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 = <b>Space.Network.GetShardProperty</b>("testKey");<br>end<br><br><i>-- this method is called every frame, once "retrieved" gets a value, it displays in text</i><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);<br><br><i>-- "Text" used with GetReference is a UItext canvas object used to display the test text inworld. After you add UI > Text to your scene, drag the text object to the Object References section in your script.</i>}} | {{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 = <b>Space.Network.GetShardProperty</b>("testKey");<br>end<br><br><i>-- this method is called every frame, once "retrieved" gets a value, it displays in text</i><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);<br><br><i>-- "Text" used with GetReference is a UItext canvas object used to display the test text inworld. After you add UI > Text to your scene, drag the text object to the Object References section in your script.</i>}} |
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)
scriptedObject.SubscribeToEvents();
local testMsg = "Hello";
local updateTextUI = function()
Space.Network.SetShardProperty("testKey", testMsg);
end
scriptedObject.OnMouseDown(updateTextUI);
Gets a previously set key.
Subscribes to network messages on 'key', will fire a Scripting/SNetworkMessage whenever a matching message is received
|