Jump to content
Unity Insider Forum

mrkenendie

Members
  • Content Count

    3
  • Joined

  • Last visited

  • Days Won

    1

mrkenendie last won the day on February 18

mrkenendie had the most liked content!

Community Reputation

1 Neutral

About mrkenendie

  • Rank
    Newbie
  1. Ich hab es jetzt endlich kapiert^^ Mein Denkfehler war, dass ich nicht genau wusste, was ich mit public void Flip() { lookingRight = !lookingRight; anfangen sollte. Von true auf false und umgekehrt wird ja erst gewechselt, wenn die Funktion aufgerufen wird und ihre Arbeit verrichtet. lookingRight ist mit dem Starten des Spiels true, Wenn ich nun nach rechts drücke (h>0) ist die Bedingung zum Einsetzen der Flip-Funktion nicht erfüllt. Wenn ich nach links drücke dann sind beide Bedingungen erfüllt (lookingright ist (immer noch) true und h<0, also Flip-Funktion. Dadurch wird x bei der Scalierung mit minus 1 multipliziert, der Charakter ändert seine Blickrichtung, x ist <0, und lookingRight ist false, und das Spiel beginnt von neuem, wenn ich jetzt die rechte Taste wieder drücke. Danke dir Sascha.
  2. Hallo Sascha, vielen Dank für deine Antwort, und den vielen Erklärungen dazu. Das mit dem Code als Text einfügen, merke ich mir aufjedenfall. Ich habe allerdings immer noch das Problem, dass ich nicht verstehe, woher das Script bzw. Unity weiß, dass der Charakter gerade nach rechts schaut? Müsste ich nicht erst definieren, dass lookingRight bedeutet, dass das Spielerobjekt r2b2 auf der x-achse der Skalierung einen Wert von +1 aufweist und halt solange true sein soll bis die linke pfeiltaste betätigt wird? public class PlayerControler : MonoBehaviour { public float maxSpeed =4; public float jumpForce = 550; public bool lookingRight = true; private Rigidbody2D rb2b; private Animator anim; // Start is called before the first frame update void Start() { rb2b = GetComponent<Rigidbody2D>(); anim = GetComponent<Animator>(); } // Update is called once per frame void Update() { } void FixedUpdate() { float hor = Input.GetAxis("Horizontal"); rb2b.velocity = new Vector3(hor * maxSpeed, rb2b.velocity.y); if ((hor > 0 && !lookingRight) || (hor < 0 && lookingRight)) Flip(); } public void Flip() { lookingRight = !lookingRight; Vector3 myScale = rb2b.transform.localScale; myScale.x *= -1; rb2b.transform.localScale = myScale; } }
  3. Hallo zusammen, https://www.bilder-upload.eu/bild-fcfcad-1550494014.jpg.html ich hoffe mir kann jemand eventuell helfen. In dem Bild ist der Code mit dem ich Probleme habe: Ich habe erst vor kurzem mit Programmieren C# und Unity angefangen. In einem Tutorial geht es darum, dass sich beim Drücken der Pfeiltasten auf der horizontalen Ebene auch der Charakter mitdreht, je nach dem ob man nach links oder rechts läuft. Dafür hat der Tutor zunächst eine Bool-Variable mit dem Namen lookingRight angelegt und ihr per Standard den Wert true zugewiesen. (public bool lookingRight = true;) Anschließend die Funktion public void Flip, die dafür sorgt, dass sich die Scalierung des Charakters auf der x-Achse von +1 auf -1 ändert und somit der ganze Charakter gedreht wird. Soweit so gut. Jedoch wurde zusätzlich eine for-Schleife in der FixedUpdate-Funktion angelegt, die dafür sorgen soll, dass die Funktion zum richtigen Zeitpunkt aufgerufen wird, d.h. wenn die variiable hor den Wert <0 annimmt und lookingRight true ist, oder sie den Wert <O annimmt, und lookingRight false ist. Was ich nicht verstehe ist, woher Unity nun weiß, dass der Charakter nach rechts bzw. nicht nach rechts blickt? Der &&-Operator gibt ja nur an, dass beide Bedingungen hor und lookingRight erfüllt sein müssen Aber dass der Spieler während die Pfeiltaste nach rechts gedrückt wird (hor >0) nach rechts blickt (lookingRight = true) kann Unit doch eigentlich noch garnicht wissen, oder? Wurde hier ein Schritt übersprungen? Muss nicht erst noch Unity mitgeteilt werden, dass, genau dann, wenn die Pfeiltaste nach rechts gedrückt wird der Spieler nach rechts schaut, und erst wenn die Linke Pfeiltaste gedrückt wird, die Funktion Flip aufgerufen werden soll, und umgekehrt? Ich wäre für jegliche Hinweise und Hilfe dankbar. Beste Grüße
×
×
  • Create New...