Пуля не вращается в направлении - PullRequest
0 голосов
/ 25 июня 2018

У меня есть направление моей пули в Unity:

direction = bullet01.transform.position - this.transform.position;

Направление - Вектор2.

Проблема в том, что моя пуля не смотрит в направлении полета.

Это моя пуля:

public void SetDirection (Vector2 direction)
{
    //set the direction normalized, to get an unit vector
    _direction = direction.normalized;
}

// Update is called once per frame
void Update () {
    //get the bullet's current position
    Vector2 position = transform.position;

    position += _direction * speed * Time.deltaTime;

    //update the bullet's position
    transform.position = position;

    //this is the top right point of the screen
    Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1));

    //if the bullet went outside the screen on the top, then destroy the bullet
    if (transform.position.y > max.y) {
        PlayerControl.bulletPool.ReturnInstance(gameObject);
    }
}

1 Ответ

0 голосов
/ 25 июня 2018

Попробуйте изменить SetDirection следующим образом

public void SetDirection (Vector2 direction)
{
    //set the direction normalized, to get an unit vector
    _direction = direction.normalized;

    float angle = Mathf.Atan2(_direction.y, _direction.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
...