Jump to content
Unity Insider Forum

SyntaxTalkstoMe

Members
  • Content count

    9
  • Joined

  • Last visited

Community Reputation

0 Neutral

About SyntaxTalkstoMe

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. SyntaxTalkstoMe

    Animator / Variable Verständnisfrage

    Hallihallo, ich bin aktuell fleissig das Tutorial von Malzbie durchzuarbeiten. Jetzt war ich wirklich einige Stunden mit einem Problem beschäftigt. Den Grund, auch wenn er mir nicht schlüssig ist, habe ich nur durch try and Error herausgefunden. Und zwar handelt es sich um diese schmucken Codezeilen: public bool schildAn; private Animator anim; // Use this for initialization void Awake() { anim = GetComponent<Animator>(); } // Update is called once per frame void Update() { if (schildAn) { anim.SetBool("schildAn", true); schildAn = false; StartCoroutine(MachAus()); } } IEnumerator MachAus() { yield return (new WaitForSeconds(0.5f)); anim.SetBool("schildAn", false); } } Wie ihr seht, heißt der bool am oberen Ende des Codes "schildAn". Dieser bekommt einen Zustand über eine Zuweisung. Also z.b "schildAn = false". Also wie in den Codezeilen. Um auf die Transitions im Animator zuzugreifen, nutze ich ja "anim.SetBool("schildAn", false)". Ich hatte im Animator anfangs einen anderen Namen als "schildAn" und da hat nichts geklappt. Jetzt heißt der "bool" im Animator genauso wie die "bool" Variable und nun geht es. Sicherheitshalber hatte ich aus Spaß den Namen der bool Variable geändert. Und siehe da, es ging wieder nicht. Es lag also definitiv daran. Ich verstehe nur nicht warum. Das sind doch zwei verschiedene paar Schuhe. Danke im Voraus und schöne Nacht noch
  2. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Danke. Ja die Lebenspunkte werden heruntergezählt nachdem eine Bullet den Meteor trifft. Das mit dem dem zerstörten Gameobject ist mir bewusst. Ich hatte mir diverse andere Tutorials angeschaut und muss sagen, dass dieses von Malzbie sehr gut ist. Ich werde jetzt komplett nochmal neu anfangen. Wenn ich es nachbaue, lerne ich es wie es funktioniert bzw das wie und warum. Aber danke für die Antworten. Gruß
  3. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Danke dir. Ich ziehs mir mal rein.
  4. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Ob das jetzt ein Gameobject ist, oder eine Animation, ist mir eigentlich egal. Es funktioniert nur nix
  5. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Ne geht leider auch nicht. Echt zum kotzen das Thema langsam. Ich werd mir jetzt irgendein Space Shooter von Unity Asset Store lade, und schauen, wie die es gemacht haben.
  6. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Hm, funktioniert leider auch nicht. Es wird keine Animation abgespielt. Ich hab den Code noch etwas abgeändert, was aber leider auch nicht zum gewünschten Ergebnis führt. Ich habe aber mittels einer Messagebox herausgefunden, dass er gar nicht in den If-Block reinspringt. Das bedeutet, dass er gar nicht merkt, sobald die Lebenspunkte des Asteroiden unter 1 fällt. Hier ist nochmal der Code: Die Objekte werden jedenfalls Ordnnungsgemäß zerstört. Es wird lediglich die Animation nicht abgespielt. Allerdings muss ich auch dazu sagen, dass ich noch ein anderes Scripts auf meiner Bullet habe. Die zerstört alles, was kein Spielergeschoss, Spieler oder Wand ist. Evtl sollte ich den Code auf die Bullet packen? Fragen über Fragen .... public class EnemyLifePoints : MonoBehaviour { public int lebensPunkte; public EnemyLifePoints lifePoints; public Animation explosion; public Transform shotSpawn; public Collider2D colli; private void Start() { lifePoints.lebensPunkte = 3; OnTriggerEnter2D(colli); } private void OnTriggerEnter2D(Collider2D collision) { if (lifePoints.lebensPunkte < 1) { EditorUtility.DisplayDialog("asdfa", "asdfasdf", "asdfasd"); IsDead(); } } void IsDead() { Instantiate(explosion, shotSpawn.position, shotSpawn.rotation); explosion.Play(); Destroy(gameObject); } }
  7. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Danke. Jetzt hat es funktioniert, die Animation in das Feld zu ziehen. Das System ist mir noch nicht so 100% sinnig. Aber es entwickelt sich Unity ist zwar OOP in Reinkultur, aber trotzdem bei den ersten Schritten etwas gewöhnungsbedürftig. So ich habe nun den Code geändert. Die Animation wird aber leider noch nicht abgespielt. public class EnemyLifePoints : MonoBehaviour { public int lebensPunkte; public EnemyLifePoints lifePoints; public Animation explosion; public Transform shotSpawn; private void Start() { lifePoints.lebensPunkte = 3; } private void OnTriggerEnter2D(Collider2D collision) { if(lifePoints.lebensPunkte < 1) { IsDead(); } } void IsDead() { Instantiate(explosion, shotSpawn.position, shotSpawn.rotation); Destroy(gameObject); } }
  8. SyntaxTalkstoMe

    Animation abspielen bei Objektzerstörung

    Hallo nochmal, danke für deine Antwort. Aber das Problem mit der Animation bleibt nach wie vor. Ich hab mal ein Screenshot gemacht. Unten ist auch eine Meldung, die dich aber nicht richtig deuten kann. Ich kann die ExplosionsAnimation nicht in dieses Feld per Drag& Drop reinverschieben. Es ist zum Mäusemelken. Ich hänge jetzt schon sehr lange an diesem Problem. Ich kann alles mögliche in dieses graue Feld schieben. Nur nicht die Animation. Ich muss ihm ja sagen, welche Animation er abspielen soll Vielleicht gehe ich auch die Sache falsch an. Bin wirklich sehr neu in Unity. Hab davor nur etwas in C# gemacht. Ich habe zu Testzwecke ein Asteroid auf die Spielfläche gemacht. Dem habe ich dieses Script, dass du oben gepostet hast, hinzugefügt. Natürlich auch ein Rigidbody und Boxcollider2D. Gruß
  9. Guten Morgen zusammen, ich bin neu im Forum und in Unity und habe eine dringende Frage Ich probiere mich gerade an einem Space Shooter. Jetzt hätte ich gerne, dass, wenn ein Asteroid zerstört wird, eine Feuerexplosion (Animation) abgespielt wird. Ich hatte gegoogelt, allerdings hat nichts wirklich geholfen. Das vielversprechendste war das hier: public Animation ani; // Use this for initialization private void Start() { ani = GetComponent<Animation>(); if (!ani.isPlaying) { ani.Play(); } } Wenn ich das allerdings meinem Asteroiden-Prefab als Skript hinzufüge, ist Slot im Inspektor ausgegraut. Ich habe auch mal dieses Video hier probiert: https://unity3d.com/de/learn/tutorials/projects/space-shooter-tutorial/explosions Nachdem ich mich an den Code aus dem Video gehalten habe, war es mir ebenfalls nicht möglich, etwas in diesen "Slot" im Inspector reinzuschieben. Ich habe auch langsam das Gefühl, dass es evtl an der Animation liegt. Aber ich sehe darin nichts verwerfliches (Das Animationssymbol ist rechteckig mit einem Kreis darin der vorne das "Play"-Zeichen hat). Hat jemand einen nützlichen Tipp oder kann mir sagen, wie ich dies am besten umsetze?
×