Синтаксис:
Используется csharp
public float speed = 5f;
private Rigidbody2D body;
private Vector2 Movement;
void Start () {
body = GetComponent<Rigidbody2D>();
}
void Update () {
float MoveX = Input.GetAxis('Horizontal');
float MoveY = Input.GetAxis('Vertical');
Movement = new Vector2(MoveX * speed, MoveY * speed);
if (MoveX == 1)
rotate(0);
if (MoveY == 1)
rotate(1);
if (MoveX == -1)
rotate(2);
if (MoveY == -1)
rotate(3);
}
void FixedUpdate()
{
body.velocity = Movement;
}
//0 - смотрим в право
//1 - смотрим в вверх
//2 - смотрим на лево
//3 - смотрим в низ
private void rotate(byte side)
{
if (side == 0)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y,-90);
if (side == 1)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 0);
if (side == 2)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 90);
if (side == 3)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 180);
}
private Rigidbody2D body;
private Vector2 Movement;
void Start () {
body = GetComponent<Rigidbody2D>();
}
void Update () {
float MoveX = Input.GetAxis('Horizontal');
float MoveY = Input.GetAxis('Vertical');
Movement = new Vector2(MoveX * speed, MoveY * speed);
if (MoveX == 1)
rotate(0);
if (MoveY == 1)
rotate(1);
if (MoveX == -1)
rotate(2);
if (MoveY == -1)
rotate(3);
}
void FixedUpdate()
{
body.velocity = Movement;
}
//0 - смотрим в право
//1 - смотрим в вверх
//2 - смотрим на лево
//3 - смотрим в низ
private void rotate(byte side)
{
if (side == 0)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y,-90);
if (side == 1)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 0);
if (side == 2)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 90);
if (side == 3)
transform.rotation = Quaternion.Euler(gameObject.transform.rotation.x, gameObject.transform.rotation.y, 180);
}
И вроде бы персонаж перемещается, но если нажать одновременно две кнопки, например влево и в низ, то после того как мы отпустим их, персонаж начинает вращаться... Так же персонаж вращается при столкновении с углом кого либо объекта.
Почему то все скобки в коде заменились на коды. Форум глючит (