Hey i have been trying to get something to work for a long time. I Have a 2D game with a sprite. I have 2 sprites for each direction (N,NE,E,SE,S,SW,W,NW). I dont know how to implement this. Also my movement speed wont change dependent on the value i put in. (WSpeed is up, ASpeed is Left, SSpeed is down, DSpeed is right and RSpeed is Run up)
using UnityEngine;
using System.Collections;
public class LoganMovement : MonoBehaviour
{
public float WSpeed = 3.0f;
public float ASpeed = 3.0f;
public float SSpeed = 3.0f;
public float DSpeed = 3.0f;
public float RSpeed = 3.5f;
void Update()
{
if (Input.GetKey(KeyCode.A))
{
Vector3 position = this.transform.position;
position.x--;
this.transform.position = position;
transform.Translate(Vector3.left * ASpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
Vector3 position = this.transform.position;
position.x++;
this.transform.position = position;
transform.Translate(Vector3.right * DSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.W))
{
Vector3 position = this.transform.position;
position.y++;
this.transform.position = position;
transform.Translate(Vector3.up * WSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.S))
{
Vector3 position = this.transform.position;
position.y--;
this.transform.position = position;
transform.Translate(Vector3.down * SSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.R))
{
Vector3 position = this.transform.position;
position.y--;
this.transform.position = position;
transform.Translate(Vector3.up * RSpeed * Time.deltaTime);
}
}
}