View difference between Paste ID: PtSxvB5K and 4ZRj70Ma
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