There are a few things to explain here.
First, if your follower objects already have offsets assigned to them in the editor you can skip steps 3 and 4. Those where in case you wanted to give them a random offset at runtime.
Keep in mind that for 4 objects you are going to need 4 sets of coordinates that will make up for a total of 8 values. To clarify:
- Follower 1
- Has offsetX instance variable and offsetY instance variable.
- Follower 2
- Has offsetX instance variable and offsetY instance variable.
- Follower 3
- Has offsetX instance variable and offsetY instance variable.
- Follower 4
- Has offsetX instance variable and offsetY instance variable.
What I mean by relative to the target is that the offsets are values that you add to each coordinate of the target to obtain a result. This table has a few examples using actual numbers to show what I mean.
Follower Offset (X;Y) |
Target Position (X;Y) |
Target Position + Follower Offset (X;Y) |
0 ; 0 |
100 ; 100 |
100 + 0 ; 100 + 0 |
20 ; 10 |
200 ; 200 |
100 + 20 ; 200 + 10 |
-10 ; -10 |
100 ; -100 |
100 + (-10) ; -100 + (-10) |
"add the offsets of the instance" means exactly that. At one point in your event sheet you must be using the Find path action of the Path behaviour and you are using the coordinates of your player object. Instead of just using the coordinates of the player object, add the offset values as well. Here is another table to try to explain this better.
Target Position (X;Y) |
Target Position with offset (X;Y) |
player.X ; player.Y |
player.X + follower_object.offsetX ; player.Y + follower_object.offsetY |
What should happen is that, let's say your player object has a position of X = 200 and Y = 300 and a follower has offsetX = 10 and offsetY = 20, the values that you end up sending to the Find path action would be 200 + 10 for the X coordinate and 300 + 20 for the Y coordinate.
Hope that helps.