Стрельба в 2D

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Стрельба в 2D

Сообщение Dis46 28 мар 2020, 12:31

Здравствуйте, я еще новичок в юньке, нужна помощь. У меня есть проект, в нем игрок движется по двум осям, скажем есть враг, мне необходимо чтоб при нажатии на кнопку, вылетала пуля от игрока и до близлежащего противника(а их несколько ), есть ли у кого-нибудь совет как это правильно сделать, а лучше скрипт чтоб я его разобрал, заранее спасибо
Dis46
UNец
 
Сообщения: 2
Зарегистрирован: 28 мар 2020, 12:14

Re: Стрельба в 2D

Сообщение 1max1 28 мар 2020, 13:16

Делаешь врагов, ставишь им тег "Enemy", делаешь префаб пульки, вешаешь на нее скрипт Bullet, на игрока - Player, заполняешь поля в инспекторе.
Метод GetNearEnemy получает ближайшего врага, LookAt2D поворачивает transform.up пульки в сторону позиции, берешь отсюда http://www.unity3d.ru/distribution/view ... 86#p279637
Всё остальное думаю понятно.
Синтаксис:
Используется csharp
class Bullet : MonoBehaviour
{
    [SerializeField] float speedMove;

    void Update()
    {
        transform.position += transform.up * speedMove * Time.deltaTime;
    }
}

class Player : MonoBehaviour
{
    [SerializeField] GameObject bulletPrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var bullet = Instantiate(bulletPrefab);
            var enemies = GameObject.FindGameObjectsWithTag("Enemy");
            var nearEnemy = GetNearEnemy(transform, enemies);
            bullet.transform.LookAt2D(nearEnemy.transform.position);
        }
    }

    GameObject GetNearEnemy(Transform player, GameObject[] enemies)
    {
        int near = 0;

        float temp = float.MaxValue;

        for (int i = 0; i < enemies.Length; ++i)
        {
            float d = (player.position - enemies[i].transform.position).sqrMagnitude;

            if (d < temp)
            {
                temp = d;
                near = i;
            }
        }

        return enemies[near];
    }
}
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Стрельба в 2D

Сообщение Dis46 29 мар 2020, 10:31

Огромное спасибо. Очень помог
Dis46
UNец
 
Сообщения: 2
Зарегистрирован: 28 мар 2020, 12:14

Re: Стрельба в 2D

Сообщение Saltant 29 мар 2020, 13:01

Dis46 писал(а):Огромное спасибо. Очень помог

Кто то гуглить не умеет
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2235
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21