0 / 0 / 0
Регистрация: 19.04.2018
Сообщений: 12
1

Перемещение игрока во время анимации

28.10.2018, 11:04. Показов 1617. Ответов 3

Здравствуйте, есть такой вопрос, как мне можно сделать так, что бы во время проигрывания определенной анимации персонаж не мог сдвигаться с места. Может есть какой-то скрипт на временный запрет клавиш, что как по мне будет лучше, т.к игра с видом сверху и при нажатии на "S" он разворачивается,а затем идет.
Как на примере этого кода мне сделать временный запрет кнопок"W,A,S,D"
C#
1
2
3
4
5
6
7
        if (other.tag == "HPbottle" & Input.GetKeyDown(KeyCode.F))
        {
            HPbottle = HPbottle + 1f;
            gameObject.GetComponent<Animator>().SetTrigger("Picking");
        }
    }
}
Скрипт на подъем предмета с земли.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2018, 11:04
Ответы с готовыми решениями:

Перемещение 2D игрока без учета массы
Здравствуйте! Подскажите пожалуйста, как исправить управление чтобы масса не учитывалась при...

Перемещение игрока в сетевой игре пс использованием джойстика
Есть два скрипта:джойстик и скрипт игрока, который получает от джойстика вектор. Но суть в том, что...

Игра, подобная Roguelike - перемещение игрока по карте
В общем, пишу ASCII игрушку, семейства Rogue-like, для того что бы закрепить знание Pascal'я. Как...

Перемещение игрока возможно лишь если клик был по необходимому объекту (?)
Здравствуйте, ребята! Я новичок в Unity, поэтому не судите строго. Столкнулся с вроде бы легкой...

3
2198 / 1405 / 816
Регистрация: 26.10.2018
Сообщений: 4,038
28.10.2018, 11:13 2
Лучший ответ Сообщение было отмечено d4r4nn как решение

Решение

Ну ты же где-то двигаешь персонажем? Вот там и запрети движение:
C#
1
2
3
4
5
6
7
8
public static bool stopMove = false;
 
if (other.tag == "HPbottle" & Input.GetKeyDown(KeyCode.F))
{
    stopMove = true;
    HPbottle = HPbottle + 1f;
    gameObject.GetComponent<Animator>().SetTrigger("Picking");
}
А там где движение:
C#
1
2
3
4
if (!stopMove)
{
    // Движение
}
Когда анимация закончится, stopMove меняешь на false.
1
0 / 0 / 0
Регистрация: 19.04.2018
Сообщений: 12
28.10.2018, 11:44  [ТС] 3
Цитата Сообщение от 1max1 Посмотреть сообщение
if (!stopMove)
Да, получилось, но после того как я выполнил действие он перестает ходить вообще)

Добавлено через 13 минут
Цитата Сообщение от 1max1 Посмотреть сообщение
А там где движение:
И движение у меня реализовано вот так. Т.е когда я нажимаю, все срабатывает отлично, но не переходит в исходное положение, что бы можно было двигаться.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        if (!stopMove)
        {
            if (Input.GetKey(KeyCode.W))
                transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, transform.rotation.y, 0), 0.2f);
            if (Input.GetKey(KeyCode.S))
                transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, transform.rotation.y + 180, 0), 0.2f);
            if (Input.GetKey(KeyCode.A))
                transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, transform.rotation.y - 90, 0), 0.2f);
            if (Input.GetKey(KeyCode.D))
                transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, transform.rotation.y + 90, 0), 0.2f);
            x = Input.GetAxis("Vertical");
            y = Input.GetAxis("Horizontal");
        }
        
    }
 
 
    private void CharacterMove()
    {
        if (!stopMove) { 
            moveVector = Vector3.zero;
        moveVector.x = Input.GetAxis("Horizontal") * speedMove;
        moveVector.z = Input.GetAxis("Vertical") * speedMove;
            {
                controller.Move(moveVector * Time.deltaTime);
            }
        }
    }
0
2198 / 1405 / 816
Регистрация: 26.10.2018
Сообщений: 4,038
28.10.2018, 12:21 4
Ну так не забывай stopMove выключать после анимации.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 12:21

Перемещение персонажа по средствам анимации
Доброго времени суток. Создал персонажа и анимацию с помощью mixamo. Как настроить анимацию так...

Время Анимации
Ребят Помогите плз //---------------------------------------------------------------------------...

Для данных значений m, n и известной ставки каждого игрока определить номер игрока, который выиграл и сумму выигрыша
За круглым столом собралось n игроков (n &lt;= 255). Каждый сделал ставку в k монет (1 &lt;= k &lt;= 5)....

Зная квалификацию игроков определить общее число подтягиваний, которое совершат оба игрока за время игры
Пусть квалификация первого игрока равна A, а квалификация второго равна B. Обозначим количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.