Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

KiwiProd

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutral

About KiwiProd

  • Rank
    Newbie
  1. Problem mit meinem Script

    Hallo, ich habe ein Problem mit meinem Script. Unzwar möchte ich den SceneManager benutzen, um zu prüfen ob eine gewisse Scene gerade benutzt wird(also mit dem == Operator). Allerdings weiß ich nicht was hier hinkommt(bei den .....) if (SceneManager........ == 0) Ich würde mich über schnelle Hilfe freuen. Hier mein Script, Fehlerquelle ist in der Zeile 24 des Scripts (Die ganzen Anmerkungen können missachtet werden): 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 } }
×