Diagonal movement, stopping at screen edge
I have a test 2D game where my player moved from left to right and when he reached the end of the screen it would just transform on the other side. I had a change of heart and made my player move diagonally. It did work, but I have no idea how to make the player stop when it hits the end of the screen. I don't want it to transform on the other side, but rather just stop. So far all my results are either some glitching on the edges or not stopping at all. I have provided my PlayerController script. Right now my player moves diagonally and he will just continue to the edge of the screen. If anyone can assist me I would be very grateful. I never thought I will deal with diagonal movement, but I really want to learn how to do it.
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
 
 public class PlayerController : MonoBehaviour {
 
     public float speed = 7;
     public float speedy = 7;
 
     public event System.Action OnPlayerDeath;
     float screenHalfWidthInWorldUnits;
     Rigidbody2D rb;
 
     void Start () {
 
         rb = GetComponent<Rigidbody2D>();
         float halfPlayerWidth = transform.localScale.x / 2f;
         screenHalfWidthInWorldUnits = Camera.main.aspect * Camera.main.orthographicSize;
 
 
     }
     void Update()
     {
 
         float inputX = Input.GetAxisRaw("Horizontal");
         float velocity = inputX * speed;
         transform.Translate(Vector2.right * velocity * Time.deltaTime);
 
 
     }
 
 
     public void MoveRight()
     {
         rb.velocity = new Vector2(speed, speedy);
     }
 
     public void MoveLeft()
     {
         rb.velocity = new Vector2(-speed, -speedy);
 
     }
 
 
     public void Stop()
     {
         rb.velocity =  Vector2.zero;
 
     }
 
     void OnTriggerEnter2D(Collider2D triggerCollider)
     {
         if (triggerCollider.tag =="Box")
 
         {
             if (OnPlayerDeath != null)
             {
                 OnPlayerDeath();
             }
             Destroy(gameObject);
         }
 
     }
 
 
 }
 
              Your answer
 
             Follow this Question
Related Questions
How to move a cube by flipping using keyboard input 1 Answer
How to make script remember a counter and display an ad every 5th time? 1 Answer
How can I get the player to face the direction it is going in a Unity 2D Game? 0 Answers
How to make my game stop once the timer meets zero in unity. 1 Answer