Поворот 2D персонажа
Добавлено: 26 май 2017, 17:14
У меня есть 2D игра с видом сверху(на Android). В настройках 2D физики отключил гравитацию. Написал скрипт для перемещения и поворота персонажа, но с поворотом проблемы, (Поворот должен осуществлятся в направлении перемещения). Поворот ОЧЕНЬ медленный или , иногда, совсем не поворачивается. Может что-то в скрипте или может что-то в настройках Rigidbody персонажа?
Синтаксис:
Используется csharp
private Rigidbody2D m_Rigidbody2D;
private Player _Player;
public float Speed;
public GameObject Q;
void Start () {
_Player = GetComponent<Player> ();
m_Rigidbody2D = GetComponent<Rigidbody2D> ();
}
void FixedUpdate () {
float x = CrossPlatformInputManager.GetAxis("Horizontal");
float y = CrossPlatformInputManager.GetAxis("Vertical");
Move (x, y);
if(x!=0 && y!=0)
Q.transform.position = new Vector3 (transform.position.x + x * 2,transform.position.y + y * 2,0);
//Поворот оси X к пустышке.
transform.right = Q.transform.position;
}
void Move(float x, float y){
m_Rigidbody2D.velocity = new Vector2 (x * Speed, y * Speed);
}
}
private Player _Player;
public float Speed;
public GameObject Q;
void Start () {
_Player = GetComponent<Player> ();
m_Rigidbody2D = GetComponent<Rigidbody2D> ();
}
void FixedUpdate () {
float x = CrossPlatformInputManager.GetAxis("Horizontal");
float y = CrossPlatformInputManager.GetAxis("Vertical");
Move (x, y);
if(x!=0 && y!=0)
Q.transform.position = new Vector3 (transform.position.x + x * 2,transform.position.y + y * 2,0);
//Поворот оси X к пустышке.
transform.right = Q.transform.position;
}
void Move(float x, float y){
m_Rigidbody2D.velocity = new Vector2 (x * Speed, y * Speed);
}
}