2D Player Movement/ Player doesnt stop after leaving the button
When I move my player and leave the button the player doesn't stops emidiately. And my second problem why does my player move through walls?(The Player has got a Rigidbody 2D and a box collider and the wall has got a box collider)
Thank you in advance!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
public float moveSpeed = 10f;
//public float jumpForce = 10f;
private bool facingRight = true;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
move();
}
void move()
{
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0f).normalized;
if (movement.x < 0f && !facingRight)
{
facing();
}
else if (movement.x > 0f && facingRight)
{
facing();
}
transform.position += movement * Time.deltaTime * moveSpeed;
}
/*void jump()
{
if (Input.GetButtonDown("Jump"))
gameObject.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, 5f) * jumpForce, ForceMode2D.Impulse);
}*/
void facing()
{
// Switch the way the player is labelled as facing.
facingRight = !facingRight;
// Multiply the player's x local scale by -1.
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
,Hello everyone, i am new in Unity and i have got a problem. When I move the player in any direction and leave the button, the player doesn't stop emidiately. Can anyone help me with this problem and maby give me some tipps?
I have got a second little problem, maby someone can answer it. When I'm moving around my world i can go through block(they have a box collider and my player has a rigidbody and a boxcollider).
Thanks in advance!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement : MonoBehaviour
{
public float moveSpeed = 10f;
//public float jumpForce = 10f;
private bool facingRight = true;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
move();
}
void move()
{
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0f).normalized;
if (movement.x < 0f && !facingRight)
{
facing();
}
else if (movement.x > 0f && facingRight)
{
facing();
}
transform.position += movement * Time.deltaTime * moveSpeed;
}
/*void jump()
{
if (Input.GetButtonDown("Jump"))
gameObject.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, 5f) * jumpForce, ForceMode2D.Impulse);
}*/
void facing()
{
// Switch the way the player is labelled as facing.
facingRight = !facingRight;
// Multiply the player's x local scale by -1.
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
Answer by parachutingpotatochips · Apr 12, 2020 at 10:46 PM
Hi, about the Collider problem, have you checked if any of the colliders are is trigger? They should not be. If you would like an isTrigger, then simply add another collider in addition to the one that is isTrigger.