Jump to content
Unity Insider Forum

Verdemis

Members
  • Content Count

    90
  • Joined

  • Last visited

Community Reputation

4 Neutral

About Verdemis

  • Rank
    Advanced Member
  • Birthday 12/24/1982

Profile Information

  • Gender
    Male
  • Location
    Aachen
  1. Ok das schaue ich mir an. Danke
  2. Ah sehr cool. Genau so etwas habe ich gesucht. Awesome! Danke für den Hinweis. LG Sascha
  3. Hallo zusammen, ich hätte da ein Problem wo ich nicht weiter komme und suche aktuell nach eine Lösung oder eine evtl. best practice Lösung. Folgende Situation: In einem 2D Spiel habe ich diverese Gegner. Jeder Gegner hat sein eigenes Spritsheet mit seinen Animationen. Dazu gibt es für jeden Gegner noch Rüstungsteile, die ebenfalls in separaten Spritesheets ablegt sind quasi genau über das andere Spritsheet gelegt werden. Mein GameObject hat ein Child das den SpriteRenderer und den Animator enthält, hier liegt läuft das eigentliche Sprite des Gegners ab. Dieses Child hat weitere Childs... Armor, Helmet, Shield... mit jeweils einen SpriteRenderer. Hier laufen dann entsprechend die Sprites der einzelnen Rüstungsteile ab, passend zum Parent Element. Soweit, so gut, funktioniert an sich ausgezeichnet. Aber... die Reihenfolge der Ebenen macht Probleme. Das Hauptsprite hat z. B. Order in Layer 5, die Rüstung 6, der Helm 7 und der Schild 8. Funktioniert auch, aber nur so lange bis zwei Gegner mit Rüstungen aneinander vorbei laufen, dann passiert es natürlich häufig das die Rüstung des einen Gegners über dem anderen Gegner liegt. Die Frage ist, gibt es einen Weg die Ebenen innerhalb eines GameObjects zu definieren, so dass sowas nicht mehr passiert? Ich kann gerne später ein paar Screenshots anhängen falls meine Schilderung nicht deultich genug ist. Bin aber aktuell noch auf der Arbeit ^^ LG Sascha
  4. contactPoint.normal scheint er nicht zu kennen. Vielleicht sollte ich erwähnen das ich nicht mit Collisionen hier arbeite, contactPoint ist lediglich ein Vector2 den ich selbst ermittelt habe.
  5. Oh ok das ist natürlich dann eleganter. Aber irgendwas mach ich noch falsch, denn das Objekt springt in die Richtung zurück aus der es gekommen ist. Wenn ich das richtig sehe ist der erste Parameter der Richtungsvektor des bewegenden Objekt und das zweite der normal Vektor der Oberfläche mit der das Objekt kollidiert oder vertue ich mich da irgendwie? Vector2.Reflect(contactPoint - transform.position, contactPoint.normalized);
  6. Verstehe ich das richtig? Du möchtest das Headtracking aktiviert lassen, aber die Stereocam ausschalten?
  7. Hallo Leute, mit fast 15 Jahre Abstinenz zum Thema Vektorrechnung und Mathe im Allgemeinen versuche ich langsam wieder in das Thema rein zu kommen, allerdings hänge ich nun an einem Problem wo ich einfach nicht auf die Lösung kommen will, vielleicht kann mir ja jemand nen heißen Tipp geben Folgendes Problem: Ich habe ein GameObject... sagen wir einen Ball, diese bewegt sich auf eine Wand zu und nun möchte ich das dieses Objekt in einem zuvor festgelegtem Winkel abprallt und zwar abhängig vom Winkel indem das Objekt auf die Wand stößt. Ich kenne die Position des Objekts und den Punkt an dem es die Oberfläche berührt, wodurch ich dann auch den Winkel kenne in dem das Objekt auf die Oberfläche prallt. Eigentlich brauche ich nur den neuen Winkel, aber einfach den Abprallwinkel (sagen wir mal 90°) drauf rechnen geht ja nicht, bzw. nicht aus jeder Richtung. Das ganze läuft übrigens ohne Physikengine ab und das muss auch so bleiben. Ich habe das ganze mal in dieser unfassbar kunstreichen Zeichnung dargestellt. LG Sascha
  8. Hallo Leute, aktuell bastel ich an einem 2D Game und hab folgendes Problem. Ich habe einige GameObjects welches sich in Richtung des Spielers bewegen sollen. Sobald diese GameObjects aktiv werden ändere ich deren transform.right Vektor. Vector3 target = new Vector3(player.transform.position.x, transform.position.y, transform.position.z); transform.right = (target - transform.position).normalized; Das scheint soweit auch zu funktionieren. Im Editor sehe ich das der rote Pfeil der x Achse in Richtung des Spielers zeigt. Befindet sich das GO jedoch rechts vom Spieler, der Pfeil zeigt also nach Links, und ich bewege das GameObject, bewegt es sich trotzdem nach rechts, also in die falsche Richtung. rBody.AddForce(Vector2.right * movementSpeed); Ich verstehe nicht wo das Problem liegt. Ganz besonders da ich diese Methode auch bei anderen GameObjects verwende und da funktioniert es tadellos. :/ Hat jemand ne Idee? Besten Dank, Sascha
  9. Verstehe ich das richtig? Im Editor sehen die Buttons identisch aus, aber im Play Modus nicht mehr? Hast Du jedes Element (Button) einzeln erstellt oder hast Du einen erstellt und ihn dupliziert?
  10. Noch bewege ich gar nichts, ich sammel gerade nur schon Ideen für ein Projekt und da mir diese Problematik bekannt ist, wollte ich erstmal schauen ob das zu umgehen ist. Ich würde das Objekt vermutlich via Rigidbody bewegen.
  11. Hallo, ich vermute mal Du meinst virtuelle Buttons? Der mit Abstand einfachste Weg wäre wohl einen Button zu erstellen und die OnMouseDown() Funktion zu nutzen. Wichtig ist dabei das der Button entweder ein UI Element ist oder zumindest einen Collider hat. Die Funktion OnMouseDown wird dann immer aufgerufen wenn der Spieler auf das Objekt tippt. Wenn Du lieber die integrierte Touch Funktionen nutzen möchtest, kannst Du auch via Raycast prüfen ob der Spieler gerade auf den Button getippt hat. Du greifst dir einfach die aktuelle Position ab wo geklickt wurde und führst dort einen Raycast aus. So erhälst Du den ersten Collider auf den der Raycast trifft (falls überhaupt) und musst nur prüfen ob der getroffene Collider der selbe ist wie der deines Button. Wenn ja, kannst Du die entsprechenden Aktionen ausführen. Das ist jetzt nur eine sehr vereinfachte Erklärung, aber da ich auf der Arbeit sitze muss ich mich etwas kurz fassen.
  12. Ich bin nun einfach hingegangen und habe mir einen kleinen Workaround gebaut und löse die OnClick Funktion nun bei MouseButtonDown aus und schon funktioniert es tadellos.
  13. Hallo zusammen, bei sich sehr schnell bewegenden Objekten kommt es bei Unity ja vor, dass die Kollision nicht erkannt wird. Ich frage mich, wie kann ich diesen Umstand umgehen? Was kann ich tun um eine Kollision eines sehr schnellen Objekts mit einem anderen zu garantieren? LG Sascha
  14. Nein es wird nichts überlagert. Aber ich habe eben festgestellt das Problem tritt dann auf, wenn sich die Position der Maus oder des Fingers (auf Mobile) zwischen MouseDown und MouseUp auch nur minimal verändert. Klicke ich und halte den Cursor ganz still funktioniert es tadellos. Bewege ich während des Klicks die Maus auch nur leicht, wird der onClick nicht ausgeführt.
×
×
  • Create New...