Frage zu meinem Script

Diskutiere und helfe bei Frage zu meinem Script im Bereich Allgemeines im Windows Info bei einer Lösung; Hey, ich habe ein Problem mit meinem Script für Unity. Unzwar würde ich gern mit dem SceneManager prüfen lassen, ob man in einem Level ist, also if... Dieses Thema im Forum "Allgemeines" wurde erstellt von ProDKiwi, 8. Oktober 2017.

  1. ProDKiwi
    ProDKiwi Gast

    Frage zu meinem Script


    Hey, ich habe ein Problem mit meinem Script für Unity.

    Unzwar würde ich gern mit dem SceneManager prüfen lassen, ob man in einem Level ist, also

    if (SceneManager......) und bei den Punkten weiß ich nicht, was ich eingeben muss. Außerdem würde ich gern den Operator == benutzen.

    Würde mich über schnelle Hilfe freuen. Hier mein Script(Die ganzen Anmerkungen könnt ihr missachten):


    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine.SceneManagement;
    using UnityEngine;


    public class HealthController : MonoBehaviour {

    public float startHealth = 5; //Anfangslebensanzahl: 5
    public int startLifePoints = 3; //Anfangsanzahl an LifePoints
    private float health = 5; //Lebenszustand: 5
    private int lifePoints = 3; //Lebenspunkte: 3 (int, weil es eh nur Ganzzahlen sind)

    private Animator anim; //Referenz auf den Animator
    private PlayerController playerController;//Referenz auf den PlayerController
    private bool isDead = false; //der Boolparameter isDead is deaktiviert(man ist nicht tot)
    private bool isDamageable = true;

    void Start () {
    anim = GetComponent<Animator>(); //Referenz auf Animator einstellen
    playerController = GetComponent<PlayerController>(); //Referenz auf PlayerController einstellen

    //wenn es eine Begrüssungsscene gibt, muss das Level, in dem man die Startwerte bekommt, entsprechend angepasst werden
    if (SceneManager.) //wenn man im Level 0 ist bekommt man die Startwerte zugewiesen
    { //(das steht hier zwar nicht, aber) in den anderen Leveln bekommt man die Werte zugewisen, die man beim Beenden der letzten Scene hatte
    health = startHealth;
    lifePoints = startLifePoints;
    }

    health = PlayerPrefs.GetFloat("Health"); //gespeicherten Healthwert in der nächsten Scene wieder aufrufen
    lifePoints = PlayerPrefs.GetInt("LifePoints"); //gespeicherte LifePoints-Anzahl in der nächsten Scene wieder aufrufen
    }

    void ApplyDamage(float damage) //floatwert (Schadenswert) wird übergeben
    {
    if (isDamageable) //wenn Damage erlaubt ist.....
    {

    health -= damage; //Schaden wird von healthwert abgezogen

    health = Mathf.Max(0, health); //wenn health kleiner als 0 ist wird 0 gewählt, dass der Gesundheitswert nicht negativ werden kann

    if (!isDead) //wenn man nicht(!) tot ist
    {
    if (health == 0) //wenn die Lebensanzahl 0 ist soll die Dying Animation abgespielt werden
    {
    isDead = true;
    Dying();
    }
    else //ansonsten soll die Damageanimation abgespielt werden
    {
    Damaging();
    }

    isDamageable = false;
    Invoke("ResetIsDamageable", 1);
    }
    }
    }

    void ResetIsDamageable()
    {
    isDamageable = true;
    }

    void Dying()
    {
    anim.SetBool("Dying", true); //bool, weil der Parameter der Dyingainamtion ein Boolparameter ist, false wird durch true ersetzt
    playerController.enabled = false; //der PlayerController wird auf false gesetzt, dass man solange man tot ist man sich nicbt weiterbewegen kann

    lifePoints --; //1 Lifepoint wired abgezogen

    if (lifePoints <= 0) //wenn die Lifepoints kleiner als 0 sind.....
    {
    //StartGame //soll das Spiel neugestartet werden
    Invoke("StartGame", 3); //Spiel nach 3 Sekunden neustarten
    }
    else
    {
    //RestartLevel //andernfalls soll das Level neugestartet werden
    Invoke("RestartLevel", 1); //Level nach einer Sekunde neustarten
    }

    }

    void StartGame()
    {
    SceneManager.LoadScene(0);
    }

    void RestartLevel()
    {
    health = startHealth; //Lebensanzahl wird auf Anfangslebensanzahl zurückgesetzt
    isDead = false;
    anim.SetBool("Dying", false); //Boolparameter Dying wieder auf false setzen(um nicht mehr tot zu sein)
    playerController.enabled = true; //den PlayerController wieder aktivieren, um sich wieder bewegen zu können

    if (!playerController.lookingRight) //WICHTIG: ! bedeuted Verneinung
    { //in dem Fall --> wenn der Spieler NICHT (!) nach rechts guckt....
    playerController.Flip(); //.... soll die Blickrichtung geflipt werden, sodass er nach rechts guckt
    }
    //Level neu generieren und Spieler zurücksetzen

    }

    void Damaging()
    {
    anim.SetTrigger("Damage");
    }

    private void OnDestroy() //wird aufgerufen wenn ein Script zerstört wird, was hier nur pasiert wenn eine Scene gewechselt wird
    {
    PlayerPrefs.SetFloat("Health", health); //Healthwert wird (für nächste Scene) gespeichert
    PlayerPrefs.SetInt("Lifepoints", lifePoints); //LifePoints-Anzahl wird (für nächste Scene) gespeichert
    }
    }
     
  2. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Frage zu meinem Script - Allgemeines

Die Seite wird geladen...

Frage zu meinem Script - Similar Threads - Frage Script

Forum Datum

mein minecraft account wurde gehacked ich war schin hier vor 3 tagen ich wollte fragen wie...

mein minecraft account wurde gehacked ich war schin hier vor 3 tagen ich wollte fragen wie...: mein minecraft account wurde gehacked ich war schon hier vor 3 tagen ich wollte fragen wie es jetzt ist mit der antwort
Microsoft Office 19. April 2025

FRAGE

FRAGE: wie können in OneDrive, Word, Exel und Powerpoint die zuletzt verwendeten ordner und Dateien entfernt werden wenn es die Datei Nicht mehr gibt oder verschonen wurde.
Microsoft Office 14. April 2025

Frage zu Ordnerberechtigungen

Frage zu Ordnerberechtigungen: Ich habe einen übergeordneten Ordner mit Unterordnern, und Benutzer einer bestimmten AD-Gruppe (nennen wir sie Gruppe X) haben Zugriff auf beide. Ich möchte jedoch nicht, dass Mitglieder der...
Microsoft Windows 10. April 2025

Kurze Frage

Kurze Frage: Hallo, wie kann ich eine versehntlich geschickte E-Mail zurückrufen? Habe versucht aber leider kein Erfolg. Ich bitte um Ihre Hilfe. Danke
Outlook.com 27. März 2025

Forms: Freitext und Auswahl kombinierbar in einer frage?

Forms: Freitext und Auswahl kombinierbar in einer frage?: Ich möchte in Forms bei einer Frage Auswahlmöglichkeiten angeben aber auch Text wenn die Auswahl nicht passt. Kann man diese beide Optionen in einer Frage kombinieren? Ich habe nur die Möglichkeit...
Microsoft Office 25. März 2025

Frage zu Outlook für Mac: e-mail schließt sich ständig beim Schreiben

Frage zu Outlook für Mac: e-mail schließt sich ständig beim Schreiben: Folgendes Problem habe ich seit ein paar Tagen:Ich schreibe eine Mail und spätestens nach 20 - 30 Sekunden schließt sich die Mail. Sie ist dann im Entwürfe-Ordner gespeichert, aber ich muss sie...
Outlook.com 21. März 2025

Copilot bringe Meldung: "Zu viele Fragen..."

Copilot bringe Meldung: "Zu viele Fragen...": Ich nutze Windows 365 und habe den Copilot auf diese Weise bekommen. Wenn ich eine Frage stelle, kommt folgende Meldung:"Sie haben leider das Limit für Nachrichten erreicht, die Sie innerhalb von...
Outlook.com 4. März 2025
Frage zu meinem Script solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.