Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.08.2021
Сообщений: 87

Анимации неправильно работают

24.02.2022, 22:32. Показов 813. Ответов 5

Студворк — интернет-сервис помощи студентам
Я сделал в своей игре мультиплеер. Но когда я захожу в сессию к другому игроку, то при попытке передвижения анимация ходьбы проигрывается у обоих игроков. Я уже пытался отключить кое каким способом, но это не помогло. Как мне это исправить?

Вот код первого вида персонажа:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.Characters.FirstPerson;
using Photon.Pun;
 
 
public class AnimatorController1 : MonoBehaviour
{
    public PhotonView view;
    public AnimatorController1 PlayerController;
    [SerializeField] private Animator Animatronic;
    [SerializeField] private FirstPersonController Player;
    [SerializeField] private bool IsAngried = false;
    [SerializeField] private bool IsAngry = false;
    [SerializeField] private float NowTime = 0;
    [SerializeField] private float NowTimeToGood = 0;
    [SerializeField] private float TimeToStop = 20;
    [SerializeField] private float TimeToStopAngry = 10;
    [SerializeField] private int Ostatock;
    [SerializeField] private int CostToTransfrom = 20;
    [SerializeField] public Text OstatockText;
 
    void Awake()
    {
        view = GetComponent<PhotonView>();
 
        if (!view.IsMine)
        {
            Animatronic.enabled = false;
        }
    }
 
    void Update()
    {
        //remnant
        NowTime += Time.deltaTime;
        OstatockText.text = "Remainder : " + Ostatock;
        if (NowTime >= TimeToStop)
        {
            NowTime = 0;
            Ostatock += 1;
        }
        if (IsAngried == false)
        {
            SheNotAngry();
        }
        if (IsAngried == true)
        {
            SheIsAngry();
        }
        if (Input.GetKeyDown(KeyCode.F))
        {
            if (Ostatock >= CostToTransfrom)
            {
                IsAngried = !IsAngried;
                IsAngry = !IsAngry;
                Ostatock -= 20;
            }
        }
        if (IsAngried)
        {
            Angried();
 
        }
        if (!IsAngried)
        {
            NotAngried();
        }
        if (IsAngry)
        {
            Timer();
        }
 
 
    }
    public void SheNotAngry()
    {
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
        {
            Player.GetComponent<FirstPersonController>().m_RunSpeed = 2f;
            Animatronic.SetBool("IsWalk", true);
        }
        else
        {
            Animatronic.SetBool("IsWalk", false);
        }
        if (Input.GetKey(KeyCode.C))
        {
            Animatronic.SetBool("IsAnim2", true);
        }
        else
        {
            Animatronic.SetBool("IsAnim2", false);
        }
    }
 
    public void SheIsAngry()
    {
        Player.GetComponent<FirstPersonController>().m_RunSpeed = 7f;
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
        {
            Animatronic.SetBool("IsWalk2", true);
        }
        else
        {
            Animatronic.SetBool("IsWalk2", false);
        }
        if (Input.GetKey(KeyCode.LeftShift))
        {
            Animatronic.SetBool("IsRun2", true);
        }
        else
        {
            Animatronic.SetBool("IsRun2", false);
        }
        if (Input.GetKey(KeyCode.R))
        {
            Animatronic.SetBool("IsHaywire2", true);
        }
        else
        {
            Animatronic.SetBool("IsHaywire2", false);
        }
    }
 
    public void Angried()
    {
        Animatronic.SetBool("IsAngry", true);
        SheIsAngry();
    }
    public void NotAngried()
    {
        Animatronic.SetBool("IsAngry", false);
        SheNotAngry();
    }
    public void Timer()
    {
        NowTimeToGood += Time.deltaTime;
        if (NowTimeToGood >= TimeToStopAngry)
        {
            Animatronic.SetBool("IsAngry", false);
            IsAngried = false;
            NowTimeToGood = 0;
        }
    }
}
Вот второго вида персонажа:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
 
public class Human : MonoBehaviour
{
    public PhotonView view;
    public Human PlayerController;
    [SerializeField] private Animator ThisHuman;
    [SerializeField] private GameObject Player;
 
    void Awake()
    {
        view = GetComponent<PhotonView>();
 
        if (!view.IsMine)
        {
            ThisHuman.enabled = false;
        }
    }
 
    void Update()
    {
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
        {
            ThisHuman.SetBool("IsWalk1", true);
        }
        else
        {
            ThisHuman.SetBool("IsWalk1", false);
        }
        if (Input.GetKey(KeyCode.LeftShift))
        {
            ThisHuman.SetBool("IsRun1", true);
        }
        else
        {
            ThisHuman.SetBool("IsRun1", false);
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2022, 22:32
Ответы с готовыми решениями:

Не работают анимации
Делаю что то вроде рогалика, но проблема связана с анимациями. Сначала скачивая с mixamo , потом делая анимации в блендере, столкнулся с...

Неправильно работает код анимации при ходьбе
Пишу на юнити 3д код для анимации при ходьбе вот код и ошибка: using UnityEngine; using System.Collections; public class Move :...

Не работают слои Анимации
Есть дерево анимации &quot;Base Layer&quot; с анимацией ходьбы беша и тп Есть еще 2 слоя анимации один с маской на руки другой на ноги(на ноги...

5
<Dragon/Craft>
 Аватар для VarionDrakon
24 / 19 / 6
Регистрация: 07.05.2019
Сообщений: 297
Записей в блоге: 2
25.02.2022, 04:44
Получается у Вас два разных персонажа (Возможно и спрайтов), но при проигрывании анимации на одном из них, анимация работает у обоих, то попробуйте:
1. Сделать публичные методы, где производится проигрывание анимации, приватными (То есть public сменить на private). Можно даже для метода Update:
Цитата Сообщение от Frosmen Посмотреть сообщение
public void SheNotAngry()
На: private void SheNotAngry()

2. Использовать разные клипы анимаций, например:
0
0 / 0 / 0
Регистрация: 19.08.2021
Сообщений: 87
25.02.2022, 08:17  [ТС]
Цитата Сообщение от VarionDrakon Посмотреть сообщение
Получается у Вас два разных персонажа (Возможно и спрайтов), но при проигрывании анимации на одном из них, анимация работает у обоих, то попробуйте:
1. Сделать публичные методы, где производится проигрывание анимации, приватными (То есть public сменить на private). Можно даже для метода Update:
Сообщение от Frosmen
public void SheNotAngry()
На: private void SheNotAngry()
2. Использовать разные клипы анимаций, например:
Я сейчас так сделал, но теперь если в игре 2 игрока одного вида, то если один двигается, то анимации воспроизводятся у обоих

Добавлено через 1 минуту
И ещё. У меня в игре у аниматроников есть возможность выбрать внешний вид, но у других игроков это не отображается
0
<Dragon/Craft>
 Аватар для VarionDrakon
24 / 19 / 6
Регистрация: 07.05.2019
Сообщений: 297
Записей в блоге: 2
25.02.2022, 09:25
Frosmen, Попробуйте создать отдельную анимацию для каждого нового объекта при старте сцены.
0
0 / 0 / 0
Регистрация: 19.08.2021
Сообщений: 87
25.02.2022, 09:39  [ТС]
Не совсем понял
0
<Dragon/Craft>
 Аватар для VarionDrakon
24 / 19 / 6
Регистрация: 07.05.2019
Сообщений: 297
Записей в блоге: 2
28.02.2022, 21:13
Frosmen, Для каждого объекта, отдельная анимация.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2022, 21:13
Помогаю со студенческими работами здесь

Не работают анимации вообще никакие
public class AnimWalk : MonoBehaviour { private Animator animator; // Start is called before the first frame update ...

Не работают кнопки после воспроизведения анимации
В общем, дело обстоит так: анимация загрузки сцены (чёрный экран становится невидимым и дальше проявляются кнопки) кнопки перестают...

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую отладку на проверку значения k. Выдаёт...

Не работают анимации
При создании анимации я не могу ее редактировать

VBulletin Не работают анимации
у меня не работают анимации!?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru