Страница 1 из 1

Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 10:59
FirstGameMaker
Делаю простенький 2D спайсшутер, но даже с ним у меня проблемы, а именно в том, что я не могу найти не единого урока, где использовали бы райкаст в 2D, поэтому прошу вашей помощи...

Re: Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 11:28
1max1
Что нужно то? И как должен вести себя лазер?

Re: Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 17:04
FirstGameMaker
1max1 писал(а):Что нужно то? И как должен вести себя лазер?

Ну по моей задумке лазер должен работать так: после того как объект попадает в триггер происходит небольшая задержка, а затем выстрел лучом, и если объект попадает под луч, то у него отнимается Hp. Проблема в том, что я без понятия как реализовать сам луч.

Re: Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 17:14
1max1
А зачем рейкаст если у тебя триггер есть?
Синтаксис:
Используется csharp
    float t;
    void OnTriggerStay2D(Collider2D collision)
    {
        if (collision.CompareTag("Player"))
        {
            if ((t += Time.deltaTime) > 2.0f)
            {
                t = 0.0f;
                collision.GetComponent<Player>().hp -= 100.0f;
            }
        }
    }

Re: Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 17:24
FirstGameMaker
1max1 писал(а):А зачем рейкаст если у тебя триггер есть?
Синтаксис:
Используется csharp
    float t;
    void OnTriggerStay2D(Collider2D collision)
    {
        if (collision.CompareTag("Player"))
        {
            if ((t += Time.deltaTime) > 2.0f)
            {
                t = 0.0f;
                collision.GetComponent<Player>().hp -= 100.0f;
            }
        }
    }

Нет, нужно чтобы было видно сам луч: как он вылетает из бластера и тянется по прямой.

Re: Unity2D Стрельба лазерным лучом | Как реализовать?

СообщениеДобавлено: 25 ноя 2019, 17:36
seaman