The prefab name represents the full path of the prefab inside the game files.
It always starts with
assets/ and will be fully lowercase.
The position in the world where the entity will be placed.
The default position is 0,0,0. This represents the center of the map at water level.
The rotation of the entity after being spawned.
There will be a section on Quaternions later, but simplified explanation here for now:
There is their axis:
- The X axis goes from your left to right.
- The Y axis goes from above to below you.
- The Z axis goes from front to back.
Your rotation can be represented by turning each axis, which leads to the following behaviour:
- X rotation = leaning forward and backwards
- Y rotation = turning left and right
- Z rotation = tilting left and right
This means you represent your rotation as 3 numbers:
( 'x' rotation, 'y' rotation, 'z' rotation ). These are called
Human readable) angles. However, there is one catch:
Quaternion represents your rotation as 4 numbers which makes the math easier for a computer but near impossible to understand as a human.
To solve this problem we have helper functions. You can use
Quaternion.Euler(x,y,z) to create a new
Quaternion rotation based on the
If you want to convert an existing rotation back to the
Euler angles just use
.eulerAngles on a rotation.
The code to spawn an entity will make a lot more sense now that we know what all the parameters mean.
The first part of spawning something is to create the entity. The function takes the 3 parameters described above into this function:
We store the result in a variable of type BaseEntity.
If there was an error spawning the entity or an invalid prefab name was supplied the entity will be
null. We should check for this before calling the
Spawn() function or we risk throwing an error.
A full example follows.
After you have spawned your boat you might want to remove it.
You could look at the boat on the client, run
ent kill in the F1 Console and it would be removed. But what if we want to automate it?
Let us continue with the example above:
IsDestroyed lets you know if the entity has been already removed by the game.
This is needed because the entity does not go
null after you