Sometimes we have a collection of
SimObject
instances in a SimSet
or SimGroup
collection and we would like to retrieve a single, random object from this collection. In this recipe we will discover a quick and easy method to do just that.
We will be adding a new TorqueScript function to a project based on the Torque 3D Full
template and try it out using the Empty Terrain
level. If you haven't already, use the Torque Project Manager (Project Manager.exe
) to create a new project from the Full
template. It will be found under the My Projects
directory. Then start up your favorite script editor, such as Torsion, and let's get going!
We are going to write a TorqueScript function that will demonstrate how to retrieve a random SimObject
instance from a SimSet
or SimGroup
collection as follows:
Open the
game/scripts/server/game.cs
script file and add the following code to the bottom:function getRandomObject1() { // Retrieve a random object from the MissionGroup. This holds // the top level objects from the loaded level. %object = MissionGroup.getRandom(); // Print some information about the object to the console echo(%object.getId() SPC %object.getClassName()); }
Start up our game under the
My Projects
directory and load theEmpty Terrain
level. Open the console using the tilde (~) key and enter the following at the bottom of the screen:getRandomObject1();
In the console, we will see the following output (you may have a different object chosen):
==>getRandomObject1(); 4276 ScatterSky