Entities
How To Spawn
Prefab Name
The prefab name represents the full path of the prefab inside the game files.
It always starts with assets/
and will be fully lowercase.
Position
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.
Rotation
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 Euler
(aka Human readable
) angles. However, there is one catch:
Internally a 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 Euler
angles.
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.
Code To Spawn An Entity
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.
How To Delete An Entity
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:
What is 'IsDestroyed'
The bool 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 Kill()
it.