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