Unity, C-Sharp

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

Unity, C-Sharp

Сообщение Adam 02 дек 2021, 14:28

Мне нужно сделать механику уровня как в Green Light, Red Light из игры в кальмара. Надо чтобы после того, как загорелся красный, если вдруг игрок сдвинется с места проигрывать анимацию смерти. Кто-нибудь примерно знает, как это реализовать?
Adam
UNец
 
Сообщения: 15
Зарегистрирован: 19 окт 2021, 22:51

Re: Unity, C-Sharp

Сообщение Xtir 02 дек 2021, 16:00

If(redLight && velocity > 0) Смерть();
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Unity, C-Sharp

Сообщение Adam 02 дек 2021, 19:16

Можешь посмотреть код? Когда персонаж двигается после того, как кукла повернула голову, он уничтожается. Но иногда он уничтожается, когда двигается после деактивации куклы.
Ссылка на GitHub: https://github.com/skrudgemacdac/-/blob/main/DoolLogic
Adam
UNец
 
Сообщения: 15
Зарегистрирован: 19 окт 2021, 22:51

Re: Unity, C-Sharp

Сообщение samana 02 дек 2021, 19:37

В вашем коде смерть игрока прописана просто напрямую, без условий. У игрока нет шансов, он умрёт просто через рандомное время.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Unity, C-Sharp

Сообщение Adam 02 дек 2021, 19:40

есть скрипт игрока, там прописано условие:
https://github.com/skrudgemacdac/-/blob/main/Player
Adam
UNец
 
Сообщения: 15
Зарегистрирован: 19 окт 2021, 22:51

Re: Unity, C-Sharp

Сообщение Xtir 02 дек 2021, 21:25

попробуй вот так сделать
Синтаксис:
Используется csharp

//выше твой код
                gameObject.transform.Rotate(0f, 180f, 0f);
                yield return new WaitForSeconds(timeOn);

                while (timeOff > 0.0f)
                {
                        if (player.rigidbody.velocity.magnitude > 0)
                        {
                                  player.Die();
                                  break;
                        }
                        timeOff -= Time.deltaTime;
                        yield return null;
                }

                //это убрать
                //player.Die();
                //yield return new WaitForSeconds(timeOff);

                gameObject.transform.Rotate(0f, 0f, 0f);
                gameObject.transform.position = new Vector3(257.5f, 1.11f, 427.3f);


Ну и конечно же в player.Die() просто убиваем игрока без всяких проверок.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Unity, C-Sharp

Сообщение Adam 02 дек 2021, 21:55

В целом работает. Единственное: У куклы тогда голова повернута с самого начала игры. А также игрок просто не успевает остановиться, его моментально убивают. Благодарен тебе за предыдущий ответ)
Может там что-то чуть поменять надо?
Последний раз редактировалось Adam 02 дек 2021, 22:16, всего редактировалось 1 раз.
Adam
UNец
 
Сообщения: 15
Зарегистрирован: 19 окт 2021, 22:51

Re: Unity, C-Sharp

Сообщение Xtir 02 дек 2021, 22:11

Ну я просто часть кода твоего не вписал, если сделаешь задержку как у тебя выше было, то голова не должна быть повёрнута сразу.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Unity, C-Sharp

Сообщение Adam 03 дек 2021, 00:11

А возможно ли эту голову поворачивать плавно? Она слишком резко разворачивается.
Adam
UNец
 
Сообщения: 15
Зарегистрирован: 19 окт 2021, 22:51


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

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

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