SHOW:
|
|
- or go back to the newest paste.
1 | using System.Collections; | |
2 | using System.Collections.Generic; | |
3 | using UnityEngine; | |
4 | using UnityEngine.SceneManagement; | |
5 | ||
6 | public class SpawnAndDestroy : MonoBehaviour | |
7 | { | |
8 | public Transform player; | |
9 | public GameObject[] obstacle; | |
10 | public GameObject[] trees; | |
11 | public GameObject clouds; | |
12 | public GameObject[] enemies; | |
13 | public GameObject[] enemiesMedium; | |
14 | public GameObject grounds; | |
15 | ||
16 | public float height; | |
17 | public float heightTrees; | |
18 | private float heightClouds; | |
19 | public float heightCloudsMin; | |
20 | public float heightCloudsMax; | |
21 | public float heightGrounds; | |
22 | public float heightGroundsMin; | |
23 | public float heightGroundsMax; | |
24 | ||
25 | public Vector2 vector; | |
26 | ||
27 | public float periodEnemy; | |
28 | public float AccelerateEnemy; | |
29 | public float periodEnemyMedium; | |
30 | public float AccelerateEnemyMedium; | |
31 | public float periodClouds; | |
32 | public float AccelerateClouds; | |
33 | public float periodTrees; | |
34 | public float AccelerateTrees; | |
35 | public float periodGrounds; | |
36 | public float AccelerateGrounds; | |
37 | ||
38 | private float TimerEnemy; | |
39 | private float TimerEnemyMedium; | |
40 | private float TimerClouds; | |
41 | private float TimerTrees; | |
42 | private float TimerGrounds; | |
43 | ||
44 | public float distanceEnemy; | |
45 | public float distanceEnemyMedium; | |
46 | public float distanceClouds; | |
47 | public float distanceTrees; | |
48 | public float distanceRandomTrees; | |
49 | public float distanceRandomEnemy; | |
50 | public float distanceGrounds; | |
51 | public float alive; | |
52 | ||
53 | private float addPos = 0f; | |
54 | ||
55 | public float Timer; | |
56 | ||
57 | public bool goMedium = false; | |
58 | ||
59 | ||
60 | void Medium() | |
61 | { | |
62 | if(Time.time > Timer) | |
63 | { | |
64 | goMedium = true; | |
65 | } | |
66 | ||
67 | } | |
68 | ||
69 | void Awake() | |
70 | { | |
71 | ///START SPAWN/// | |
72 | for (int i = 0; i < 20; i++) | |
73 | { | |
74 | heightClouds = Random.Range(heightCloudsMin, heightCloudsMax); | |
75 | GameObject clone = Instantiate(clouds, vector = new Vector2(Random.Range(10f, 70f), heightClouds), Quaternion.identity); | |
76 | Destroy(clone, 20); | |
77 | } | |
78 | ||
79 | for (int i = 0; i < 4; i++) | |
80 | { | |
81 | distanceRandomTrees = Random.Range(0f, 2f); | |
82 | addPos += 10f; | |
83 | GameObject clone = Instantiate(trees[Random.Range(0,trees.Length)], vector = new Vector2(addPos + distanceRandomTrees, heightTrees), Quaternion.identity); | |
84 | Destroy(clone, 10); | |
85 | } | |
86 | for (int i = 0; i < 50; i++) | |
87 | { | |
88 | GameObject clone = Instantiate(grounds, | |
89 | vector = new Vector2(Random.Range(10f,60f), heightGrounds = Random.Range(heightGroundsMin, heightGroundsMax)), Quaternion.identity); | |
90 | Destroy(clone, alive); | |
91 | } | |
92 | ///START SPAWN/// | |
93 | ||
94 | } | |
95 | ||
96 | ||
97 | void FixedUpdate() | |
98 | { | |
99 | Medium(); | |
100 | ||
101 | ///Timers/// | |
102 | if (Time.time > TimerEnemy) | |
103 | { | |
104 | if(alive > 3f) | |
105 | alive -= 0.05f; | |
106 | ||
107 | TimerEnemy += periodEnemy; | |
108 | ||
109 | if (periodEnemy > 1f) | |
110 | { | |
111 | if(goMedium) | |
112 | AccelerateEnemy = AccelerateEnemy * 5f; | |
113 | ||
114 | ||
115 | periodEnemy += AccelerateEnemy; | |
116 | } | |
117 | SpawnEnemy(); | |
118 | distanceRandomEnemy = Random.Range(1f,5f); | |
119 | } | |
120 | ||
121 | if (Time.time > TimerEnemyMedium) | |
122 | { | |
123 | if (alive > 3f) | |
124 | alive -= 0.05f; | |
125 | ||
126 | TimerEnemyMedium += periodEnemyMedium; | |
127 | ||
128 | if (periodEnemyMedium > 1f) | |
129 | periodEnemyMedium -= AccelerateEnemyMedium; | |
130 | if(goMedium) | |
131 | SpawnEnemyMedium(); | |
132 | ||
133 | distanceRandomEnemy = Random.Range(1f, 2f); | |
134 | } | |
135 | ||
136 | if (Time.time > TimerClouds) | |
137 | { | |
138 | TimerClouds += periodClouds; | |
139 | ||
140 | if(periodClouds > 0.15f) | |
141 | periodClouds -= AccelerateClouds; | |
142 | ||
143 | SpawnClouds(); | |
144 | heightClouds = Random.Range(heightCloudsMin, heightCloudsMax); | |
145 | } | |
146 | ||
147 | if (Time.time > TimerTrees) | |
148 | { | |
149 | TimerTrees += periodTrees; | |
150 | ||
151 | if(periodTrees > 0.15f) | |
152 | periodTrees -= AccelerateTrees; | |
153 | ||
154 | SpawnTrees(); | |
155 | distanceRandomTrees = Random.Range(0f,2f); | |
156 | } | |
157 | if (Time.time > TimerGrounds) | |
158 | { | |
159 | TimerGrounds += periodGrounds; | |
160 | ||
161 | heightGrounds = Random.Range(heightGroundsMin, heightGroundsMax); | |
162 | if(periodGrounds > 0.01f) | |
163 | periodGrounds -= AccelerateGrounds; | |
164 | ||
165 | SpawnGrounds(); | |
166 | } | |
167 | ///Timers/// | |
168 | } | |
169 | ||
170 | ///SPAWNERS UPDATE/// | |
171 | public void SpawnEnemy() | |
172 | { | |
173 | GameObject clone = Instantiate(enemies[Random.Range(0, enemies.Length)], | |
174 | vector = new Vector2(player.position.x + distanceEnemy + distanceRandomEnemy, height + Random.Range(0f, 0.3f)), Quaternion.identity); | |
175 | Destroy(clone, alive); | |
176 | ||
177 | } | |
178 | ||
179 | public void SpawnEnemyMedium() | |
180 | { | |
181 | ||
182 | GameObject clone = Instantiate(enemiesMedium[Random.Range(0, enemiesMedium.Length)], | |
183 | vector = new Vector2(player.position.x + distanceEnemyMedium + distanceRandomEnemy, height + Random.Range(0f, 0.3f)), Quaternion.identity); | |
184 | Destroy(clone, alive); | |
185 | } | |
186 | ||
187 | public void SpawnClouds() | |
188 | { | |
189 | GameObject clone = Instantiate(clouds, vector = new Vector2( | |
190 | player.position.x + distanceClouds, heightClouds), Quaternion.identity); | |
191 | Destroy(clone, alive * 3f); | |
192 | } | |
193 | ||
194 | public void SpawnTrees() | |
195 | { | |
196 | GameObject clone = Instantiate(trees[Random.Range(0, trees.Length)], | |
197 | vector = new Vector2(player.position.x + distanceTrees + distanceRandomTrees, heightTrees), Quaternion.identity); | |
198 | Destroy(clone, alive); | |
199 | } | |
200 | ||
201 | public void SpawnGrounds() | |
202 | { | |
203 | GameObject clone = Instantiate(grounds, | |
204 | vector = new Vector2(player.position.x + distanceGrounds, heightGrounds), Quaternion.identity); | |
205 | Destroy(clone, alive); | |
206 | } | |
207 | ///SPAWNERS UPDATE/// | |
208 | ||
209 | } | |
210 |