Jump to content
Unity Insider Forum

deciphers

Members
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

0 Neutral

About deciphers

  • Rank
    Newbie
  • Birthday 10/12/1992

Profile Information

  • Gender
    Male
  • Location
    Hamburg

Recent Profile Visitors

177 profile views
  1. private void handleMovement() { if (grounded && jump) { airjump_counter = 0; playerRigidbody.AddForce (JumpForce); playerAnimator.SetTrigger ("jump"); } if (!grounded && jump && airjump_counter < airJumps) { airjump_counter++; playerRigidbody.AddForce (JumpForce); playerAnimator.SetTrigger ("airJump"); } } Halli Hallo! ich wollte eine Funktion für einen 2D Platformer erstellen und bin nun grade dabei das der Spieler bei Eingabe des "Jump" Buttons Springen soll und beliebig viele weitere Sprünge in der Luft machen kann. Es gibt nun eine Animation für den Sprung und den Sprung in der Luft. Ohne die Animationen klappt alles wunderbar. Nur der Sprung in der Luft funktioniert leider nicht richtig, da der Trigger "airJump" solange Aktiv bleibt bis ich wieder auf dem Boden stehe und den normalen Sprung durchführe. vielleicht kann mir jemand helfen! danke im vorraus!
  2. deciphers

    Abfrage ob Position sich in einem Collider befindet

    naja aber so kann ich dann ganz einfach per Mausklick sagen, dass nur links ein Collider sein soll oder nur oben und rechts.
  3. deciphers

    Abfrage ob Position sich in einem Collider befindet

    danke habe mich ein bisschen mit Collidern und Rigidbody befasst und jetzt klappt alles wunderbar! habs mir wohl zu kompliziert gemacht. using UnityEngine; using System.Collections; using System.Collections.Generic; public class Create_Colliders_Edges : MonoBehaviour { public List<Vector2> newVerticies = new List<Vector2>(); private EdgeCollider2D col; Vector2 down_left,down_right,up_left,up_right; public bool left,right,up,down; void Start () { down_left = new Vector2 (-GetComponent<SpriteRenderer> ().bounds.extents.x, -GetComponent<SpriteRenderer> ().bounds.extents.y); down_right = new Vector2 (GetComponent<SpriteRenderer> ().bounds.extents.x, -GetComponent<SpriteRenderer> ().bounds.extents.y); up_left = new Vector2 (-GetComponent<SpriteRenderer> ().bounds.extents.x, GetComponent<SpriteRenderer> ().bounds.extents.y); up_right = new Vector2 (GetComponent<SpriteRenderer> ().bounds.extents.x, GetComponent<SpriteRenderer> ().bounds.extents.y); if (down) { /*down*/ newVerticies.Add (down_left); newVerticies.Add (down_right); } if (left) { /*left*/ newVerticies.Add (down_left); newVerticies.Add (up_left); } if (up) { /*up*/ newVerticies.Add (up_left); newVerticies.Add (up_right); } if (right) { /*right*/ newVerticies.Add (down_right); newVerticies.Add (up_right); } gameObject.AddComponent<EdgeCollider2D> (); col = GetComponent<EdgeCollider2D>(); } // Update is called once per frame void Update () { col.points = newVerticies.ToArray(); } } der Code erstellt mir nun Edge Collider an jeder Seite des Tiles. (funktioniert nur leider nicht ganz korrekt wenn ich die Skalierung des Transforms verändere) freue mich über Feedback und Verbesserungsvorschläge
  4. deciphers

    Abfrage ob Position sich in einem Collider befindet

    Hab ich auch schon überlegt es so zu machen. aber muss ich dann nicht auch einen Code schreiben der jede Collision mit einem Collider in jedem Frame prüft?
  5. Hallo liebe Leute, Ich habe einen 2D Sprite als Spieler und dieser bewegt sich nun aus Top-Down Perspektive per Tastatur eingabe. Ich möchte nun das der Spieler nur auf "untergrund" mit dem Tag "walkable ground" gehen kann. foreach (GameObject walkable_ground in GameObject.FindGameObjectsWithTag("walkable_ground")) { if (!(walkable_ground.GetComponent<BoxCollider2D> ().bounds.Contains (transform.position))) transform.position = walkable_ground.GetComponent<BoxCollider2D> ().bounds.ClosestPoint (transform.position); } Ich prüfe für jedes Tile ob der Spieler sich darauf befindet und wenn nicht dann soll er an der nächsten Position im Box Collider stehen bleiben. klappt soweit auch ganz gut wenn ich nur ein einziges Tile verwende. Sobald ich ein weiteres hinzufüge mit dem enstprechenden Tag, hängt der Spieler an einer Ecke des colliders und man kann sich nicht mehr bewegen.
×