Загрузка данных


Item.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Item : MonoBehaviour
{
 
    public GameObject pickupEffect;
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Player")
        {
            Player player = collision.GetComponent<Player>();
            player.points++;
            GameObject effect = Instantiate(pickupEffect, transform.position, transform.rotation);
            Destroy(effect, 5);
            Destroy(this.gameObject);
        }
    }
}

Projectile.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Projectile : MonoBehaviour
{
    public float speed = 10f;
 
    public GameObject explosion;
 
    void Start()
    {
        Destroy(gameObject, 1f);
    }
 
    void Update()
    {
        transform.position = (Vector2)transform.position + Vector2.up * speed * Time.deltaTime;
    }
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Obstacle")
        {
            GameObject effect = Instantiate(explosion, transform.position, transform.rotation);
            Destroy(effect, 5);
            Destroy(collision.gameObject);
            Destroy(gameObject);
        }
    }
}





Obstacle.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Obstacle : MonoBehaviour
{
    public float scaleMax = 1.3f;
    public float scaleMin = 0.7f;
 
    public float rotationMax = 180f;
    public float rotationMin = 0f;
 
    public GameObject explosionPlayer;
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.tag == "Player")
        {
            Player player = collision.GetComponent<Player>();
            GameObject effect = Instantiate(explosionPlayer, player.transform.position, player.transform.rotation);
            Destroy(effect, 5);
            Destroy(collision.gameObject);
        }
    }
 
    private void Start()
    {
        randomSize();
        randomRotation();
    }
 
    void randomSize()
    {
        float scaleFactor = Random.Range(scaleMin, scaleMax);
        transform.localScale = (Vector2)transform.localScale * scaleFactor;
    }
 
 
    void randomRotation()
    {
        float rotationFactor = Random.Range(rotationMin, rotationMax);
        transform.localEulerAngles = Vector3.forward * rotationFactor;
    }
}















UI.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;
 
public class UI : MonoBehaviour
{
    public Player player;
    public TextMeshProUGUI pointsText;
    public GameObject defeatUI;
 
    void Update()
    {
        pointsText.text = player.points.ToString();
 
        if (player == null)
        {
            defeatUI.SetActive(true);
        }
    }
 
    public void OnClickRestart() {
 
        int index = SceneManager.GetActiveScene().buildIndex;
        SceneManager.LoadScene(index);
    }
}

UI.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.SceneManagement;
 
public class UI : MonoBehaviour
{
    public Player player;
    public TextMeshProUGUI pointsText;
    public GameObject defeatUI;
 
    void Update()
    {
        pointsText.text = player.points.ToString();
 
        if (player == null)
        {
            defeatUI.SetActive(true);
        }
    }
 
    public void OnClickRestart() {
 
        int index = SceneManager.GetActiveScene().buildIndex;
        SceneManager.LoadScene(index);
    }
}



MainMenu.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class MainMenu : MonoBehaviour
{
    public string sceneName;
 
    public void OnClickStart()
    {
        SceneManager.LoadScene(sceneName);
    }
 
    public void OnClickExit()
    {
        Application.Quit();
        print("Exit was clicked");
    }
}

DontDestroyOnLoad.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class DontDestroyOnLoad : MonoBehaviour
{
 
    void Start()
    {
        DontDestroyOnLoad(this.gameObject);
    }
 
}