Я делаю шутер сверху вниз на Unity, и мне нужно реализовать дробовик, который будет выпускать 5 выстрелов за раз, каждый следующий будет иметь поворот на 10 градусов меньше, чем предыдущий (от 20 до -20 в общей сложности). При создании пули на огневой точке скорость применяется к ней при помощи скрипта пули, прикрепленного к сборному пулю. Я также применяю вращение в методе создания экземпляра, но пуля вращается вокруг себя, а не в направлении полета.
Код стрельбы:
Vector2 mouseScreenPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = (mouseScreenPosition - (Vector2) transform.position).normalized;
transform.up = direction;
GameObject newBullet1 = Instantiate(bullet, firePoint.position, Quaternion.Euler(0f, 0f, 20f)) as GameObject;
newBullet1.GetComponent<Bullet>().direction = direction;
GameObject newBullet2 = Instantiate(bullet, firePoint.position, Quaternion.Euler(0f, 0f, 10f)) as GameObject;
newBullet2.GetComponent<Bullet>().direction = direction;
код пули:
public Vector3 direction;
public float bulletSpeed;
void Update () {
GetComponent<Rigidbody2D>().velocity = new Vector3 (direction.x, direction.y, transform.position.z) * bulletSpeed;
}