2D Top Down Movement Control Help.
Hey, some background.
I'm trying to make some sort of 2D Final Fantasy VI/Valkyria Chronicles mash and I am currently trying to get the former part in a workable state. I've got my test sprite to move at a fixed rate but I have some problems.
At the moment they move like some of the classic Ultima games, where it just snaps in position without some sort of fixed speed animation in between.
My second problem is that the movement doesn't continue when the key is held down.
And my third problem is that there is no diagonal movement. I've tried some other movement controllers but they have acceleration and deceleration slopes when I press and let go of the key (something I can't seem to find a solution to).
Any help since I am struggling to find these fairly specific solutions?
Current Character Controller.
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
private Vector2 pos;
private bool moving = false;
void Start () {
pos = transform.position;
}
void Update () {
CheckInput ();
if (moving) {
transform.position = pos;
moving = true;
}
}
private void CheckInput() {
if (Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.RightArrow)) {
pos += Vector2.right;
moving = true;
}
else if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow)) {
pos -= Vector2.right;
moving = true;
}
else if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow)) {
pos += Vector2.up;
moving = true;
}
else if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.DownArrow)) {
pos -= Vector2.up;
moving = true;
}
}
}
Answer by Jessespike · Dec 08, 2015 at 08:26 PM
void Update () {
transform.position += new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0f);
}
Your answer
Follow this Question
Related Questions
Unity 2D networking movement syncing help 0 Answers
Make a character face left. without flip 1 Answer
Problems with First Person Controller and Character Model 0 Answers
2D moving Script 1 Answer
How to move the player only 1 tile per buttonPress? 2 Answers