JonneOpettaja

Level2D

Mar 9th, 2019
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.70 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5.  
  6. public class Level : MonoBehaviour {
  7.  
  8.     int numTreasures;                       // aarteiden kokonaismäärä
  9.     int collected = 0;                      // kerättyjen aarteiden lukumäärä
  10.     bool levelComplete = false;             // onko kenttä pelattu läpi
  11.     GameObject player;                      // viittaus pelaajaan
  12.     public float levelBottomY = -10f;     // kentän "pohja", missä pelaaja kuolee
  13.     Vector3 startPosition;                  // viittaus pelaajan alkupositioon
  14.  
  15.     // Use this for initialization
  16.     void Start () {
  17.         player = GameObject.FindGameObjectWithTag("Player");
  18.         GameObject[] treasureObjects = GameObject.FindGameObjectsWithTag("Treasure");   // hakee aarteet tagien perusteella Array-muuttujaan
  19.         numTreasures = treasureObjects.Length;                                          // laskee aarteiden määrän muuttujaan
  20.         startPosition = player.transform.position;                                      // tallentaa pelaajan alkusijainnin muuttujaan
  21.                                                                                        
  22.     }
  23.  
  24.     void TreasureCollected() // rekisteröi kerättyjen aarteiden määrän
  25.     {
  26.         collected++;
  27.         if (collected >= numTreasures)
  28.         {
  29.             levelComplete = true;
  30.         }
  31.     }
  32.  
  33.     void resetPlayer() // palauttaa pelaajan alkuun putoamisen jälkeen
  34.     {
  35.         player.transform.position = startPosition;
  36.     }
  37.  
  38.     private void Update()
  39.     {
  40.         if (player.transform.position.y <= levelBottomY)
  41.         {
  42.             resetPlayer();
  43.         }
  44.         if (levelComplete == true)
  45.         {
  46.             int nextLevel = SceneManager.GetActiveScene().buildIndex + 1;
  47.             if (nextLevel >= SceneManager.sceneCountInBuildSettings)
  48.             {
  49.                 nextLevel = 0;
  50.             }
  51.             SceneManager.LoadScene(nextLevel);
  52.         }
  53.     }
  54.  
  55.     void OnGUI()
  56.     {
  57.         GUI.skin.label.fontSize = 20;
  58.         GUI.Label(new Rect(10, 40, 200, 30), "Treasures: " + collected + "/" + numTreasures);
  59.     }
  60.  
  61.     public void Death()
  62.     {
  63.         Destroy(player);            // tappaa pelaajahahmon
  64.         Invoke("ReloadScene", 2);   // kutsuu ReloadScene -funktiota kahden sekunnin kuluttua
  65.     }
  66.  
  67.     void ReloadScene() //lataa saman scenen uudestaan räjähdyksen jälkeen
  68.     {
  69.         SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
  70.     }
  71.  
  72.     void CheckPoint() // vaihtaa tippumisen johdosta tapahtuvan uudelleensyntymän paikan
  73.     {
  74.         startPosition = player.transform.position;
  75.     }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment