/// <summary> /// Move the ball in the right direction /// </summary> private void Movement() { // Move movementSpeedScaler += Time.deltaTime * 0.1f; pongball.position = new Vector3(pongball.position.x + dirX * movementSpeed * movementSpeedScaler * Time.deltaTime, pongball.position.y + dirY * movementSpeed * Time.deltaTime, 0); // Clamp inside camera view Vector3 pos = Camera.main.WorldToViewportPoint(pongball.position); pos.x = Mathf.Clamp01(pos.x); pos.y = Mathf.Clamp01(pos.y); // Change dir if reached edge if (pos.x == 0) { // Touched left, point for player dirX = 1; pos.x = 0.5f; pos.y = 0.5f; movementSpeedScaler = 1; Tymon_Main.UpdateScore(new Vector2(0, 1)); } else if (pos.x == 1) { // Touched right, point for enemy dirX = -1; pos.x = 0.5f; pos.y = 0.5f; movementSpeedScaler = 1; Tymon_Main.UpdateScore(new Vector2(1, 0)); } if (pos.y == 0) { dirY = 1; } else if (pos.y == 1) { dirY = -1; } // Set ponball position relative to camea viewport pongball.position = Camera.main.ViewportToWorldPoint(pos); }
private void Awake() { Instance = this; }