Object Spawning

7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€94.79
List Price:  €132.71
You save:  €37.92
£78.97
List Price:  £110.56
You save:  £31.59
CA$139.89
List Price:  CA$195.85
You save:  CA$55.96
A$153.73
List Price:  A$215.23
You save:  A$61.50
S$134.32
List Price:  S$188.05
You save:  S$53.73
HK$778.26
List Price:  HK$1,089.59
You save:  HK$311.33
CHF 88.57
List Price:  CHF 124
You save:  CHF 35.43
NOK kr1,105.08
List Price:  NOK kr1,547.16
You save:  NOK kr442.07
DKK kr706.99
List Price:  DKK kr989.82
You save:  DKK kr282.82
NZ$170.06
List Price:  NZ$238.10
You save:  NZ$68.03
د.إ367.26
List Price:  د.إ514.17
You save:  د.إ146.91
৳11,906.24
List Price:  ৳16,669.22
You save:  ৳4,762.97
₹8,436.24
List Price:  ₹11,811.08
You save:  ₹3,374.83
RM447.10
List Price:  RM625.96
You save:  RM178.86
₦167,464.25
List Price:  ₦234,456.65
You save:  ₦66,992.40
₨27,687.73
List Price:  ₨38,763.93
You save:  ₨11,076.20
฿3,470.35
List Price:  ฿4,858.63
You save:  ฿1,388.28
₺3,445.98
List Price:  ₺4,824.51
You save:  ₺1,378.53
B$578.68
List Price:  B$810.17
You save:  B$231.49
R1,810.53
List Price:  R2,534.81
You save:  R724.28
Лв185.34
List Price:  Лв259.49
You save:  Лв74.14
₩139,691.42
List Price:  ₩195,573.58
You save:  ₩55,882.15
₪373.67
List Price:  ₪523.15
You save:  ₪149.48
₱5,901.36
List Price:  ₱8,262.14
You save:  ₱2,360.78
¥15,574.86
List Price:  ¥21,805.43
You save:  ¥6,230.57
MX$2,020.46
List Price:  MX$2,828.72
You save:  MX$808.26
QR363.35
List Price:  QR508.71
You save:  QR145.35
P1,355.53
List Price:  P1,897.79
You save:  P542.26
KSh12,948.70
List Price:  KSh18,128.70
You save:  KSh5,180
E£4,969.50
List Price:  E£6,957.50
You save:  E£1,988
ብር12,262.61
List Price:  ብር17,168.15
You save:  ብር4,905.53
Kz91,256.94
List Price:  Kz127,763.36
You save:  Kz36,506.42
CLP$97,119.28
List Price:  CLP$135,970.88
You save:  CLP$38,851.60
CN¥724.58
List Price:  CN¥1,014.45
You save:  CN¥289.86
RD$6,000.34
List Price:  RD$8,400.72
You save:  RD$2,400.37
DA13,341.73
List Price:  DA18,678.95
You save:  DA5,337.22
FJ$227.04
List Price:  FJ$317.87
You save:  FJ$90.82
Q769.16
List Price:  Q1,076.85
You save:  Q307.69
GY$20,834.51
List Price:  GY$29,169.15
You save:  GY$8,334.63
ISK kr13,772.62
List Price:  ISK kr19,282.22
You save:  ISK kr5,509.60
DH995.44
List Price:  DH1,393.66
You save:  DH398.21
L1,819.82
List Price:  L2,547.83
You save:  L728
ден5,825.40
List Price:  ден8,155.79
You save:  ден2,330.39
MOP$798.74
List Price:  MOP$1,118.27
You save:  MOP$319.52
N$1,801.35
List Price:  N$2,521.97
You save:  N$720.61
C$3,666.61
List Price:  C$5,133.40
You save:  C$1,466.79
रु13,462.23
List Price:  रु18,847.67
You save:  रु5,385.43
S/378.10
List Price:  S/529.35
You save:  S/151.25
K400.90
List Price:  K561.28
You save:  K160.37
SAR375.38
List Price:  SAR525.55
You save:  SAR150.16
ZK2,752.36
List Price:  ZK3,853.42
You save:  ZK1,101.05
L471.69
List Price:  L660.38
You save:  L188.69
Kč2,395.79
List Price:  Kč3,354.20
You save:  Kč958.41
Ft38,840.72
List Price:  Ft54,378.57
You save:  Ft15,537.84
SEK kr1,099.74
List Price:  SEK kr1,539.68
You save:  SEK kr439.94
ARS$100,165.56
List Price:  ARS$140,235.79
You save:  ARS$40,070.23
Bs690.96
List Price:  Bs967.37
You save:  Bs276.41
COP$440,690.82
List Price:  COP$616,984.78
You save:  COP$176,293.95
₡50,645.88
List Price:  ₡70,906.26
You save:  ₡20,260.37
L2,517.41
List Price:  L3,524.47
You save:  L1,007.06
₲775,966.15
List Price:  ₲1,086,383.66
You save:  ₲310,417.50
$U4,274.58
List Price:  $U5,984.58
You save:  $U1,710
zł411.21
List Price:  zł575.71
You save:  zł164.50
Already have an account? Log In

Transcript

So let's start a new script, right click Create new C sharp script. And we're going to call this object spawner. Open up in Visual Studio. Cool, and we want to create a couple of variables straight off the bat. First of all, we need to access our player. So we can create a public game object.

Player. We've done this before, we also need to create a public game object. And he's gets crazy, we're going to build a array of game objects. So not just one game object, we want to create basically an array or you can imagine it like a list or a grouping by the court arrays. And to do that you just add open and close square brackets after the game objects and we want to call this triangle pre fam. With the s we do so the So that we know that it's an array, that's just for our own sake.

Cool. So the only other variable we need is at the location that the objects will be spawned out. And we can store this in a vector three. And because we don't need to access this vector three inside the inspector, we can just leave it as private. So we can say private vector three, spawn, or obstacle. position.

Cool, I don't think we need stops, we can get rid of stop, get rid of that. First thing we want to do. We want to create a throwaway float called float distance to rosin, we're going to call it and the horizon is just going to be an arbitrary amount of space between our player and how far we want the objects to spawn. So we're just imagining horizon at this stage and when our game is actually curved, it We'll be over the horizon. And that's going to equal a vector three dot distance. And the distance we want to get is between the player dot game object, dot transform dot position, and the spawn object position.

Awesome. So now we have a variable that is that is just a float between our player and this spawn location. So what was the purpose of this variable? Well, we want to create a fixed distance between where the objects spawn, we don't want them to spawn with gaps that are too big between the triangles. And we don't want between the triangle prefabs and we don't want to spawn them too close together, either. We want them to be pretty consistent.

So what this can do is because we know this value, we know the value between the player between the player and the spawner position is we can say well, if it gets to a certain length, or it gets under a certain length, then we can spawn a new triangle. So then all we need to do is write an if statement. If distance to horizon is less than, say 120. Well, then what do we want to do, we want to spawn triangle. Now this is going to end we're going to do with capital. This is going through an error because we don't actually have this we're trying to call this method, but we actually haven't created this method yet.

So let's just create that method down here. So we go void spawn, triangle. And you see now that it's fixed the error, but I suppose we won't actually say spawn triangles. Just so we understand that we're actually installed. We're actually spawning the triangles prefab. This is just for our sake, so we understand that code a little bit better.

And then all we want to do is we want to change the spawn obstacle position on equal to a new Vector three. Do we want to change it on the x axis? No. So we'll leave it at zero, we don't want to change on the y axis. So we'll leave that at zero as well. And then we want to change it on the z axis by a spawn object position so that the z value of one open position dot z, plus a distance of same 30.

So this will be the amount the distance between the different triangles. So you can adjust this number 20 or 50, or whatever you you find fits best. Awesome. So that's literally it. We've created the locations where our triangles are going to spawn, but now we just need to spawn them. So the next time code is where the magic happens.

It's where we actually spawn the triangles. It's called instantiate inside of unity. And Unity has an inbuilt method that helps us do this is really, really simple. What we need to do is right instantiate Then when you do open parentheses, we need to tell it what we want to actually instantiate. We want to instantiate one of the objects of the triangle prefab. So right now why don't we just choose the very first triangle prefab.

So we'll say triangle, triangle prefabs. open square bracket, open parentheses, and we're just about zero. So the object of the stuff is zero index of the array. And where do we want to instantiate it? Well, we want to instantiate it at spawn, obstacle position. And how do we want this object to be rotated when it's placed in this in the scene?

Well, if we want to be exactly like we have settled in the prefabs, we just need to write quaternion which is very hard word to spell quaternion dot identity, close parentheses into the semicolon and save that quaternion dot identity is whatever the game of default rotation is. So we choose what a game object we want to spawn. Or instantiate, we set the location which we set up here. And let me say just born at the default rotation. Awesome. So let's go back over to unity and set everything up.

Let's create a new, empty game object. We're going to call this scene manager. And I like to put a little underscore at the start there, and I like to drag it to the top. And I also like to zero everything out, just to keep things neat. And we want to add the script of exponents. Awesome.

It's asking for our playoff so we can just drag a player in. It's asking for our triangles. So if we open up this tag, it's saying well, we actually have zero objects so far, so we can just change that to three and then we can go over to our prefabs we can drag in triangles, they Dragon triangles B. And we can drag in triangles. See, then we can take these three triangles and we can turn them off. And we're gonna press play.

Today Ah, we have procedural level generation that will just keep on going forever. But there's a problem. As you can see, game objects are spawning the very first game object over and over and over again. We'll deal with this problem in the next episode.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.