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