Question by
DustyShadow · Feb 25, 2016 at 01:13 PM ·
2d character2d controller
2D Axis Movement
I am having some trouble making my player move using the axis input. as far as I can tell, it doesn't register the input, or else doesn't act on it. here is the code; using UnityEngine; using System.Collections;
public class Moving: MonoBehaviour {
public float moveSpeed =0f;
private int otherAxis =0;
[HideInInspector]
public bool jump = false; // Condition for whether the player should jump.
public float jumpForce = 300f; // Amount of force added when the player jumps.
private Transform groundCheck; // A position marking where to check if the player is grounded.
private bool grounded = false; // Whether or not the player is grounded.
//public float h=0;
public float range;
// Use this for initialization
void Start () {
// Setting up references.
groundCheck = transform.Find("groundCheck");
}
/*
void FixedUdate ()
{
}
*/
void Update () {
float h = Input.GetAxisRaw("Horizontal");
float xPos = h * range;
//if Player presses Right then turn and go right.
if(xPos == 1){
transform.Translate(Vector2.right * moveSpeed);
}
if (xPos == 1){
if(transform.rotation != Quaternion.Euler(0, 0, 0))
transform.rotation = Quaternion.Euler(0, 0, 0);
}
// if player presses Left, then turn and go left.
if(xPos == -1){
transform.Translate(Vector2.right * moveSpeed);
}
if (xPos == -1){
if(transform.rotation != Quaternion.Euler(0, 180, 0))
transform.rotation = Quaternion.Euler(0, 180, 0);
}
//This bit keeps the player from flopping back/forward.
transform.Rotate(Vector2.left * otherAxis);
// The player is grounded if a linecast to the groundcheck position hits anything on the ground layer.
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
// If the jump button is pressed and the player is grounded then the player should jump.
if(Input.GetButtonDown("Jump") && grounded)
jump = true;
if(jump)
{
// Add a vertical force to the player.
GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, jumpForce));
// Make sure the player can't jump again until the jump conditions from Update are satisfied.
jump = false;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
How to make a player fire a bow in a 2d roguelike game? 0 Answers
Animate 2D character sprite in game view and save it as a new animation clip for that character 0 Answers
2D spaceship won't move. Help. 1 Answer
Beginner in Unity - 2d platform controllers how to roll the character? 0 Answers
2d characters in a 3d environment 0 Answers