How to make an object not move through an wall using transform.translate?
So... i am making a game where you have to dodge the obstacles and i want it to have 4 "lanes": up,right,down and left. The movement works perfectly but my only problem is that i can repeatedly press the buttons and i can move through walls. If you don't understand yet, here is an video i recorded: https://www.youtube.com/watch?v=aX4302BcbiE
Here is the movement script: using System.Collections; using System.Collections.Generic; using UnityEngine;
 public class PlayerMoveMent : MonoBehaviour {
 
 
     public Rigidbody rb;
     public float speed = 500f;
     public float sidewaySpeed = 500f;
 
 
     void Start () 
     {
         
     }
 
 
     void Update()
     {
         Move ();
     }
 
 
     void FixedUpdate () 
     {
         rb.AddForce(0,0,speed * Time.deltaTime);
     }
 
 
     void Move()
     {
         if (Input.GetKeyDown("d"))
         {
             transform.Translate(1.0f, 0.0f, 0.0f);
         }
 
         if (Input.GetKeyDown("a"))
         {
             transform.Translate(-1.0f, 0.0f, 0.0f);
         }
 
         if (Input.GetKeyDown ("w")) 
         {
             transform.Translate(0.0f, 1.0f, 0.0f);
         }    
 
         if (Input.GetKeyDown ("s")) 
         {
             transform.Translate(0.0f, -1.0f, 0.0f);
         }    
     }
 }
btw, the cube is from probuilder, that's why its flipped inside out.
Answer by TheReEvolutions · Jul 11, 2017 at 06:15 AM
Dont use translate, translate will move object though other objects , you can add raycast to tell the script when there is an object in front of the player or better yet use a character controller.
Answer by NorthStar79 · Jul 11, 2017 at 06:48 AM
using translate for player movement isn't a good idea most of the times but, if it's a simple game, and just want to a quick fix, you can just add a keypress timer so you can't spam same key continuously.
or if you want a real fix, you can use unity character controller and use CharacterController.move instead of transform.translate.
Your answer
 
 
             Follow this Question
Related Questions
Player (box) movement is shaky (visual only) 0 Answers
My character doesn't move. How should I do? 1 Answer
How do I fix my FPS controller from sliding? 0 Answers
move one object to defined point according to another object movement to that point 0 Answers
Y-axis movement stuck. Help me please :c,Not Moving by pressing Button :C. Help me please 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                