8 direction walking not working...

So, I was attempting to make an 8 direction walking, it doesn’t work like it’s supposed to.
here’s my code

function Update () {
var VeIn = Input.GetAxis("Vertical");
var HoIn = Input.GetAxis("Horizontal");
if(VeIn > 0 && HoIn == 0){
	Move = MoveType.Up;
}
else if(VeIn > 0 && HoIn > 0){
	Move = MoveType.UpRight;
}
else if(VeIn == 0 && HoIn > 0){
	Move = MoveType.Right;
}
else if(VeIn < 0 && HoIn > 0){
	Move = MoveType.RightDown;
}
else if(VeIn < 0 && HoIn == 0){
	Move = MoveType.Down;
}
else if(VeIn < 0 && HoIn < 0){
	Move = MoveType.DownLeft;
}
else if(VeIn == 0 && HoIn < 0){
	Move = MoveType.Left;
}
else if(VeIn > 0 && HoIn < 0){
	Move = MoveType.LeftUp;
}
else{
	Move = MoveType.None;
}
switch (Move){
	case MoveType.None:
		CurrentSpeed = 0;
		break;
	case MoveType.Up:
		transform.rotation.y = 45;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.UpRight:
		transform.rotation.y = 90;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.Right:
		transform.rotation.y = 135;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.RightDown:
		transform.rotation.y = 180;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.Down:
		transform.rotation.y = 225;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.DownLeft:
		transform.rotation.y = 270;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.Left:
		transform.rotation.y = 315;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	case MoveType.LeftUp:
		transform.rotation.y = 0;
		CurrentSpeed = MoveSpeed * Time.deltaTime;
		break;
	
}
print("Move = " + Move);
transform.Translate(0,0,CurrentSpeed);

}

well, when i press left and up together, it works, and down and right works, everything else is just weird…

so well, if somebody could help, i would greatly appreciate it!

–LockonS483

Wouldn’t it be simpler to just do this?

var moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Horizontal"));
transform.LookAt(moveDirection);
if(moveDirection.magnitude > 1)
{
    moveDirection = moveDirection.normalized;
}
transform.Translate(0, 0, MoveSpeed * Time.deltaTime * moveDirection.magnitude);

Your code just seems to be absurdly complicated for such a simple task. There are at least 4 problems with it just from looking- the least of which is attempting to manually assign to transform.rotation. Transform.rotation is a Quaternion- it doesn’t work the way you seem to think it does.