How do I unlock the y axis for 2D player movement?,How do I un-restrict my movement along the y Axis?
When creating a movement system for my player character, I unintentionally locked the Y axis for them. When spawning in, they are set to (0, 0, 0) and do not fall to the floor below. How should I edit my code to accommodate for this? The x axis movement works perfect.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveScript : MonoBehaviour
{
public Vector3 position;
public Vector2 jumpHeight;
public float jumpStrength = 5f;
public bool isGrounded = false;
public float speed = 0f;
public float acceleration = 5f;
public float deceleration = 5f;
public float topSpeed = 5f;
public float topThresh = 1; //Time to get to max speed
public float stopThresh = 0; //Time to stop with opposite input
// Start is called before the first frame update
void Start()
{
transform.position = position;
}
// Update is called once per frame
void Update()
{
//Jump();
if ((Input.GetKey("left")) && (speed < (topSpeed + 1))){
speed = speed - acceleration * Time.deltaTime;
}
else if ((Input.GetKey("right")) && (speed > (-topSpeed - 1))){
speed = speed + acceleration * Time.deltaTime;
}
else
{
if(speed > deceleration * Time.deltaTime)
{
speed = speed - deceleration * Time.deltaTime;
}
else if (speed < -deceleration * Time.deltaTime)
{
speed = speed + deceleration * Time.deltaTime;
}
else
{
speed = 0;
}
}
if (speed >= topSpeed)
{
speed = topSpeed;
}
else if (speed <= -topSpeed)
{
speed = -topSpeed;
}
position.x = transform.position.x + speed * Time.deltaTime;
transform.position = position;
}
}
,I'm trying to create the movement system for my project, with acceleration taken into consideration, but after a couple of tutorials and online help, I've restricted my player character to the x axis. Whenever they spawn in, they are set to (0, 0, 0). The horizontal movement works fine, I just need to add gravity. How should I edit my code to un-restrict the y axis?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveScript : MonoBehaviour
{
public Vector3 position;
public float jumpStrength = 5f;
public bool isGrounded = false;
public float speed = 0f;
public float acceleration = 5f;
public float deceleration = 5f;
public float topSpeed = 5f;
public float topThresh = 1; //Time to get to max speed
public float stopThresh = 0; //Time to stop with opposite input
// Start is called before the first frame update
void Start()
{
transform.position = position;
}
// Update is called once per frame
void Update()
{
//Jump();
if ((Input.GetKey("left")) && (speed < (topSpeed + 1))){
speed = speed - acceleration * Time.deltaTime;
}
else if ((Input.GetKey("right")) && (speed > (-topSpeed - 1))){
speed = speed + acceleration * Time.deltaTime;
}
else
{
if(speed > deceleration * Time.deltaTime)
{
speed = speed - deceleration * Time.deltaTime;
}
else if (speed < -deceleration * Time.deltaTime)
{
speed = speed + deceleration * Time.deltaTime;
}
else
{
speed = 0;
}
}
if (speed >= topSpeed)
{
speed = topSpeed;
}
else if (speed <= -topSpeed)
{
speed = -topSpeed;
}
position.x = transform.position.x + speed * Time.deltaTime;
transform.position = position;
}
}
Your answer
Follow this Question
Related Questions
local Physics 0 Answers
How do i lerp player movement?,How to lerp movment 0 Answers
The character must always facing the camera 1 Answer
Object rotates when moving sideways 0 Answers
Touch buttons sometimes won't work 0 Answers