Movement Speed

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);
    }
}

}

public float Speed = 3f;
void Update(){
// E direction :
if (Input.GetKey(KeyCode.A))
transform.Translate (-Speed*Time.deltaTime,0,0);

             // W direction :
            if (Input.GetKey(KeyCode.D))
               transform.Translate (Speed*Time.deltaTime,0,0);
    }
    // or you can use Input.GetAxis if you want both wasd & the arrow keys .