Restarting after pressing a key
Hello there! I´m very new to this whole community and programming stuff. I just started a week ago. So for some people, this might be a very simple question. I found a tutorial on Youtube to make a own Pong Game. And my question is how to get the Ball to move to the side of the player who just took a goal from his opponent, after pressing the space bar. For example: When Player1 got a goal, the ball should move to the side of player2 after he pressed the space bar. Here I got a Script which I use to control the Ball:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class BallScript : MonoBehaviour { public float speed = 30f; int scoreSpieler1; int scoreSpieler2; public Text txtSpieler1; public Text txtSpieler2; // Start is called before the first frame update void Start() { GetComponent().velocity = new Vector2(1, 0) * speed; //Vector2.right geht auch }
 // Update is called once per frame
 void Update()
 {
     
 }
 void OnCollisionEnter2D(Collision2D col)
 {
     print(col.gameObject.name);
     //Debug.Log() würde auch gehen
     if(col.gameObject.name == "Spieler1")
     {
         //Aufprall mit Spieler 1
         float y = hitObject(transform.position, col.transform.position, col.collider.bounds.size.y);
         print("Berechnung: " + y);
         //Richtung berechnen
         Vector2 dir = new Vector2(1, y);
         //Richtungsvektor auf Physik anwenden
         GetComponent<Rigidbody2D>().velocity = dir * speed;
     }
     if(col.gameObject.name == "Spieler2")
     {
         //Aufprall mit Spieler 2
         float y = hitObject(transform.position, col.transform.position, col.collider.bounds.size.y);
         //Richtung berechnen
         Vector2 dir = new Vector2(-1, y);
         //Richtungsvektor auf Physik anwenden
         GetComponent<Rigidbody2D>().velocity = dir * speed;
     }
     //Tor für Spieler 1
     if(col.gameObject.name == "VertikalerBalkenRechts")
     {
         print("TOR für Spieler 1");
         scoreSpieler1 = scoreSpieler1 + 1;
         txtSpieler1.text = scoreSpieler1.ToString();
         //Neustart
         restart();
     }
     //Tor für Spieler 2
     if (col.gameObject.name == "VertikalerBalkenLinks")
     {
         print("TOR für Spieler 2");
         scoreSpieler2++;
         txtSpieler2.text = scoreSpieler2.ToString();
         //Neustart
         restart();
     }
 }
 float hitObject(Vector2 ballPos, Vector2 schlägerPos, float schlägerHöhe)
 {
     return (ballPos.y - schlägerPos.y) / schlägerHöhe;
 }
 void restart()
 {
     //Ball an Anstoßposition befördern
     Vector2 temp = new Vector2(0, 0);
     gameObject.transform.position = temp;
 }
}
Btw. I am German, please do not mind that some words in the code are actually German :D Thanks for your upcomming support :)
Your answer
 
 
             Follow this Question
Related Questions
Touch buttons sometimes won't work 0 Answers
How do I make my movement script move the character UNTIL I let go of the key? 1 Answer
How do you change your z axis in a movement script. 1 Answer
Rigidbody2D movement is lagging 0 Answers
How to make a proper Drag&Drop (any GameObject) for the Hololens (Unity3D) 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                