Урок 1. 01:08:29
0.1 Вебинар. Знакомство
Урок 2. 01:30:12
0.2 Запись вебинара 13.02.25
Урок 3. 00:58:13
0.3 Запись вебинара 20.02.25
Урок 4. 01:31:19
0.4 Запись вебинара 27.02.25
Урок 5. 01:02:49
0.5 Вебинар 05.03.25
Урок 6. 01:31:24
0.6 Запись вебинара за 06.03.25
Урок 7. 01:22:06
0.7 Запись. Вебинар за 13.03.25
Урок 8. 00:51:53
0.8 Вебинар 19.03.25
Урок 9. 01:02:31
0.9 Запись. Вебинар за 20.03.25
Урок 10. 01:24:59
0.10 Запись. Занятие за 27.03.25
Урок 11. 01:26:25
0.11 Запись. Занятие за 03.04.25
Урок 12. 01:26:27
0.12 Запись. Вебинар. 10.04.2025
Урок 13. 01:22:54
0.13 Запись. Вебинар. 24.04.25
Урок 14. 01:25:03
0.14 Запись. Занятие за 01.05.25
Урок 15. 01:21:15
0.15 Запись. Занятие за 08.05.25
Урок 16. 00:28:31
0.16 Запись. Вебинар за 15.05.25
Урок 17. 00:52:24
0.17 Запись. Вебинар за 22.05.25
Урок 18. 01:12:44
0.18 Вебинар. Запись за 29.05.25
Урок 19. 01:25:19
0.19 Вебинар. Запись за 05.06.25
Урок 20. 00:58:52
0.20 Вебинар. Запись за 12.06.25
Урок 21. 00:56:48
0.21 Запись. Вебинар за 19.06.25
Урок 22. 01:27:57
0.22 Запись. Вебинар за 03.07.25
Урок 23. 00:21:44
0.23 Запись. Вебинар за 10.07.25
Урок 24. 01:16:26
0.24 Запись. Вебинар за 17.07.25
Урок 25. 00:39:08
0.25 Вебинар 07.09.25
Урок 26. 01:48:53
0.26 Финальный вебинар 05.10.25
Урок 27. 01:08:29
1.1. Вебинар. Поток 2. Знакомство
Урок 28. 00:01:43
1.2. Зачем нужен этот модуль_
Урок 29. 00:04:20
1.3. Создаем первое консольное приложение
Урок 30. 00:02:55
1.4. Переменные и типы
Урок 31. 00:06:59
1.5. Базовые типы данных
Урок 32. 00:07:05
1.6. Приведение типов
Урок 33. 00:08:04
1.7. Бинарные операции
Урок 34. 00:03:56
1.8. Унарные операции (инкремент декремент)
Урок 35. 00:05:16
1.9. Строковый тип данных
Урок 36. 00:04:17
1.10. Конкатенация (сложение) строк
Урок 37. 00:01:52
1.11. Интерполяция строк
Урок 38. 00:01:51
1.12. Специальные символы
Урок 39. 00:08:09
1.13. Работа с консолью
Урок 40. 00:04:18
1.14. Парсинг ввода пользователя
Урок 41. 00:01:34
2.1. Тип bool
Урок 42. 00:03:36
2.2. Условные выражения
Урок 43. 00:05:34
2.3. Логические операции
Урок 44. 00:10:33
2.4. Условные операторы
Урок 45. 00:06:27
2.5. Особенности сравнения
Урок 46. 00:02:45
2.6. Тернарная операция
Урок 47. 00:02:57
2.7. Обработка некорректного ввода
Урок 48. 00:05:47
2.8. Оператор switch
Урок 49. 00:04:18
2.9. Циклы. Цикл While
Урок 50. 00:02:36
2.10. Операторы break и continue
Урок 51. 00:01:28
2.11. Цикл Do While
Урок 52. 00:03:56
2.12. Цикл For
Урок 53. 00:00:33
2.13. Когда использовать For, а когда While
Урок 54. 00:03:39
2.14. Практика 1
Урок 55. 00:01:52
2.15. Рекомендации по чистоте кода
Урок 56. 00:03:48
2.16. Практика 1 апгрейд
Урок 57. 00:07:42
2.17. Практика 2
Урок 58. 00:10:16
3.1. Массивы
Урок 59. 00:02:36
3.2. Немного про рандом
Урок 60. 00:01:58
3.3. Нюансы массивов
Урок 61. 00:05:15
3.4. Ссылочные типы и типы значений
Урок 62. 00:04:20
3.5. Ссылочные типы на практике
Урок 63. 00:04:44
3.6. Двумерные массивы
Урок 64. 00:06:58
3.7. Вложенные циклы
Урок 65. 00:05:03
3.8. Массив массивов
Урок 66. 00:02:47
3.9. Изменение размера массива
Урок 67. 00:05:43
3.10. Строка как массив
Урок 68. 00:02:11
4.1. Методы
Урок 69. 00:06:05
4.2. Практика по методам
Урок 70. 00:02:24
4.3. Методы void
Урок 71. 00:04:08
4.4. Зачем нужны методы
Урок 72. 00:06:22
4.5. Параметры по умолчанию
Урок 73. 00:07:28
4.6. Параметры методов и ссылочные типы
Урок 74. 00:03:58
4.7. Перегрузка методов
Урок 75. 00:01:06
4.8. Коллекции
Урок 76. 00:05:29
4.9. Список List
Урок 77. 00:06:02
4.10. Особенности работы List
Урок 78. 00:03:06
4.11. Очередь
Урок 79. 00:15:22
4.12. Пример использования очереди
Урок 80. 00:07:51
4.13. Словарь
Урок 81. 00:04:25
4.14. Стек
Урок 82. 00:03:23
5.1. Что такое классы
Урок 83. 00:01:59
5.2. Создание класса
Урок 84. 00:01:43
5.3. Классы и терминология
Урок 85. 00:01:21
5.4. Из чего должен состоять класс
Урок 86. 00:03:54
5.5. Поля и модификаторы доступа
Урок 87. 00:03:08
5.6. Применяем модификаторы доступа к полям
Урок 88. 00:02:42
5.7. Методы и классы
Урок 89. 00:03:24
5.8. Значения полей по умолчанию
Урок 90. 00:01:19
5.9. Работа с полями внутри класса
Урок 91. 00:02:06
5.10. Класс как ссылочный тип
Урок 92. 00:04:49
5.11. Конструктор и this
Урок 93. 00:02:49
5.12. Перегрузка и цепочка конструкторов
Урок 94. 00:03:13
5.13. Защита данных
Урок 95. 00:05:23
5.14. Свойства
Урок 96. 00:04:27
5.15. Автосвойства
Урок 97. 00:03:02
5.16. Сокращенная запись свойств и методов
Урок 98. 00:06:20
5.17. Итоги модуля и код стайл
Урок 99. 00:00:26
6.1. О чем этот модуль
Урок 100. 00:04:45
6.2. Создаём первый проект
Урок 101. 00:04:06
6.3. Знакомство с интерфейсом
Урок 102. 00:02:25
6.4. Делаем удобную раскладку окон
Урок 103. 00:03:25
6.5. Навигация на сцене. Перемещение
Урок 104. 00:05:49
6.6. Навигация на сцене. Взаимодействие с объектами
Урок 105. 00:02:15
6.7. Окно Game подробнее
Урок 106. 00:05:37
6.8. Окно Inspector. Система компонентов
Урок 107. 00:01:47
6.9. Компонент Transform
Урок 108. 00:02:16
6.10. Компонент Camera
Урок 109. 00:01:35
6.11. Настройка playmode
Урок 110. 00:03:46
7.1. Введение в компонентую систему Unity
Урок 111. 00:01:51
7.2. Первый скрипт и выбор редактора
Урок 112. 00:04:54
7.3. Разбираем шаблон скрипта по умолчанию
Урок 113. 00:02:25
7.4. Основной цикл работы Unity
Урок 114. 00:02:04
7.5. Основной цикл работы практика
Урок 115. 00:02:46
7.6. Начинаем создание первой механики
Урок 116. 00:04:16
7.7. Получение ссылки на компонент через инспектор
Урок 117. 00:04:44
7.8. Обработка ввода для прыжка
Урок 118. 00:04:11
7.9. Vector3 и прыжок
Урок 119. 00:02:07
7.10. Получение ссылки через GetComponent
Урок 120. 00:03:05
7.11. GetComponent – возможные проблемы
Урок 121. 00:07:55
7.12. Делаем правила игры
Урок 122. 00:06:48
7.13. Улучшаем игру и код
Урок 123. 00:06:38
7.14. Добавляем подсчет очков и визуализацию границ
Урок 124. 00:00:49
8.1. Введение в работу с материалами и ассетами
Урок 125. 00:07:02
8.2. Из чего состоят наши 3д объекты
Урок 126. 00:08:52
8.3. Текстуры в материалах
Урок 127. 00:03:37
8.4. Импорт ассетов через стор
Урок 128. 00:03:52
8.5. Настройки FBX моделей
Урок 129. 00:05:51
8.6. Импорт сторонних ресурсов
Урок 130. 00:05:56
8.7. Родительские и дочерние объекты
Урок 131. 00:03:34
8.8. Фиксим пивот призрака
Урок 132. 00:03:44
8.9. Делаем визуал для границ
Урок 133. 00:01:23
8.10. Настройка камеры
Урок 134. 00:00:31
8.11. Настройка материала призрака
Урок 135. 00:07:45
8.12. Делаем анимацию с помощью кода
Урок 136. 00:00:31
9.1. Введение
Урок 137. 00:01:27
9.2. Начало разговора про анимации
Урок 138. 00:02:59
9.3. Компонент Animator
Урок 139. 00:01:23
9.4. Animator Controller
Урок 140. 00:03:53
9.5. Окно Animation
Урок 141. 00:08:51
9.6. Создаем первую анимацию
Урок 142. 00:04:18
9.7. Добавляем еще две анимации
Урок 143. 00:04:23
9.8. Параметры и условия переходов
Урок 144. 00:04:16
9.9. Настройка переходов
Урок 145. 00:10:57
9.10. Переключение анимаций из скрипта
Урок 146. 00:05:03
9.11. Анимации. Нюансы
Урок 147. 00:14:25
9.12. Эффекты база
Урок 148. 00:04:36
9.13. Trail
Урок 149. 00:09:17
9.14. Делаем эффекты для призрака
Урок 150. 00:04:34
9.15. Заставляем эффекты работать из кода
Урок 151. 00:07:32
9.16. Делаем более живое окружение
Урок 152. 00:05:03
9.17. Анимируем призрака
Урок 153. 00:04:10
9.18. Итоги игры с призраком
Урок 154. 00:00:48
10.1. Введение
Урок 155. 00:00:51
10.2. Базовые операции
Урок 156. 00:01:01
10.3. Немного про иксы и игрики
Урок 157. 00:03:22
10.4. Базовые теоремы
Урок 158. 00:00:49
10.5. Введение в векторную математику
Урок 159. 00:02:19
10.6. Система координат и вектор
Урок 160. 00:01:36
10.7. Отоносительность вектора
Урок 161. 00:01:12
10.8. Находим длину вектора
Урок 162. 00:01:27
10.9. Умножение на число
Урок 163. 00:02:17
10.10. Сложение векторов
Урок 164. 00:01:56
10.11. Вычитание векторов
Урок 165. 00:00:45
10.12. Дополнительные свойства векторов
Урок 166. 00:02:21
10.13. Единичный вектор
Урок 167. 00:01:17
10.14. Трехмерная система координат
Урок 168. 00:07:47
10.15. Практика 1. Подготовка сцены
Урок 169. 00:06:40
10.16. Практика 2. Отслеживание расстояния
Урок 170. 00:02:43
10.17. Практика 3. Разбор на картинке
Урок 171. 00:12:44
10.18. Практика 4. Патрулирование по точкам
Урок 172. 00:05:52
10.19. Практика 5. Агр врага
Урок 173. 00:01:27
11.1. Системы координат - введение
Урок 174. 00:04:46
11.2. Системы координат. Unity
Урок 175. 00:04:28
11.3. Локальные системы координат в коде
Урок 176. 00:07:07
11.4. Vector3 и оси
Урок 177. 00:06:06
11.5. Преобразование координат
Урок 178. 00:09:29
11.6. Какие еще бывают системы координат в юнити
Урок 179. 00:10:34
11.7. Dop КВАТЕРНИОНЫ и углы Эйлера
Урок 180. 00:03:27
11.8. Введение в повороты
Урок 181. 00:03:10
11.9. Разбираемся с типом Quaternion
Урок 182. 00:07:25
11.10. Как работать с Rotation в коде
Урок 183. 00:08:26
11.11. Новые методы для вращения
Урок 184. 00:03:13
11.12. Операции с Quaternion
Урок 185. 00:02:02
11.13. Повороты. Практика
Урок 186. 00:11:33
11.14. Повороты. Практика 2
Урок 187. 00:04:27
11.15. Повороты. Практика 3
Урок 188. 00:01:24
12.1. Что такое система контроля версий
Урок 189. 00:04:02
12.2. Подготовка к использованию GIT
Урок 190. 00:06:04
12.3. Создаем локальный репозиторий
Урок 191. 00:02:28
12.4. Коммиты
Урок 192. 00:08:27
12.5. Удаленный репозиторий и readme файл
Урок 193. 00:04:27
12.6. Клонирование репозитория
Урок 194. 00:05:25
12.7. Ветки и merge изменений
Урок 195. 00:06:58
12.8. Конфликты при слиянии веток
Урок 196. 00:03:13
12.9. Небольшие дополнения
Урок 197. 00:16:30
12.10. Дебаг игры
Урок 198. 00:00:20
13.1. Введение в физику Unity
Урок 199. 00:04:11
13.2. Коллайдеры
Урок 200. 00:20:21
13.3. Rigidbody
Урок 201. 00:15:25
13.4. Update или FixedUpdate
Урок 202. 00:09:37
13.5. Режимы приложения силы
Урок 203. 00:04:17
13.6. Практика 1 Подготовка сцены
Урок 204. 00:12:40
13.7. Практика 2 Пишем логику движения ракеты
Урок 205. 00:07:40
13.8. Практика 3 OnTrigger методы
Урок 206. 00:10:14
13.9. Практика 4 OnCollision методы
Урок 207. 00:28:46
13.10. Практика 5 Заканчиваем мини игру с ракетой
Урок 208. 00:03:21
14.1. Введение в ООП
Урок 209. 00:01:40
14.2. Принципы ООП. Абстракция
Урок 210. 00:02:20
14.3. Принципы ООП. Инкапсуляция
Урок 211. 00:02:19
14.4. Принципы ООП. Полиморфизм
Урок 212. 00:02:22
14.5. Принципы ООП. Наследование
Урок 213. 00:08:29
14.6. Наследование практика
Урок 214. 00:13:53
14.7. Особенности наследования
Урок 215. 00:06:28
14.8. Protected поля
Урок 216. 00:08:14
14.9. Наследование от Monobehaviour
Урок 217. 00:12:38
14.10. Система префабов в Unity
Урок 218. 00:03:34
14.11. Префаб варианты
Урок 219. 00:06:37
14.12. Создание объектов на сцене. Метод Instantiate
Урок 220. 00:17:36
14.13. Пример со спавном монет
Урок 221. 00:10:48
14.14. Улучшаем пример с монетками
Урок 222. 00:01:21
15.1. Введение
Урок 223. 00:11:43
15.2. Виртуальные члены класса
Урок 224. 00:07:21
15.3. Абстрактные классы и члены класса
Урок 225. 00:03:42
15.4. Введение в полиморфизм
Урок 226. 00:06:08
15.5. Рассматриваем полимфоризм на примере
Урок 227. 00:04:54
15.6. Абстракции и полиморфизм
Урок 228. 00:15:10
15.7. Прокачиваем пример с монетками
Урок 229. 00:05:17
15.8. Подводные камни виртуальных методов
Урок 230. 00:07:51
16.1. Интерфейсы введение
Урок 231. 00:03:30
16.2. Отличия интерфейсов и абстрактных классов
Урок 232. 00:12:19
16.3. Пример использования интерфейсов
Урок 233. 00:01:12
16.4. Интерфейс или абстрактный класс
Урок 234. 00:06:12
16.5. Паттерн стратегия. Теория
Урок 235. 00:23:02
16.6. Стратегия. Практика
Урок 236. 02:36:40
16.7. Dop - Наследование vs композиция. Компонентная система Unity - бесплатный вебинар
Урок 237. 00:02:09
16.8. Композиция или наследование
Урок 238. 00:12:17
16.9. Проблемы наследования
Урок 239. 00:22:13
16.10. Композиция
Урок 240. 00:06:06
17.1. Структуры введение
Урок 241. 00:02:20
17.2. Структуры конструкторы
Урок 242. 00:07:09
17.3. Тонкости работы со структурами
Урок 243. 00:01:34
17.4. Неизменяемость структур
Урок 244. 00:03:20
17.5. Особенности сравнение с помощью Equals
Урок 245. 00:01:23
17.6. Отсутствие наследования и заключение
Урок 246. 00:05:24
17.7. Статика введение
Урок 247. 00:02:23
17.8. Статические методы
Урок 248. 00:02:18
17.9. Статический конструктор
Урок 249. 00:04:21
17.10. Почему статика - плохо
Урок 250. 00:05:27
17.11. Константы и readonly поля
Урок 251. 00:03:17
17.12. Readonly
Урок 252. 00:08:40
17.13. Enum. Перечисления
Урок 253. 00:08:11
17.14. Enum особенности
Урок 254. 00:05:52
17.15. Модификатор ref
Урок 255. 00:03:57
17.16. Модификатор out
Урок 256. 00:10:32
17.17. Namespace и using
Урок 257. 00:06:26
18.1. Введение в UI. Canvas
Урок 258. 00:05:00
18.2. Canvas scaler и graphic raycaster
Урок 259. 00:07:27
18.3. RectTransform
Урок 260. 00:02:42
18.4. Дополнительно особенности работы с UI
Урок 261. 00:10:51
18.5. Image
Урок 262. 00:09:24
18.6. Работа с UI из кода
Урок 263. 00:09:52
18.7. TextMeshPro РАБОТАЙ С ТЕКСТОМ В UNITY ПРАВИЛЬНО! Лучшие практики работы с текстом в Unity!
Урок 264. 00:11:22
18.8. Текст и Text Mesh Pro
Урок 265. 00:04:49
18.9. Button
Урок 266. 00:06:08
18.10. Slider
Урок 267. 00:05:55
18.11. LayoutGroups
Урок 268. 00:01:58
18.12. Mask
Урок 269. 00:05:00
18.13. Scroll view
Урок 270. 00:03:40
18.14. Улучшаем игру с призраком 1
Урок 271. 00:06:57
18.15. Улучшаем игру с призраком 2
Урок 272. 00:04:57
18.16. Улучшаем игру с ракетой
Урок 273. 00:16:10
19.1. Код стайл
Урок 274. 00:00:58
19.2. Базовые принципы программирования
Урок 275. 00:04:27
19.3. DRY
Урок 276. 00:02:52
19.4. KISS
Урок 277. 00:01:17
19.5. YAGNI
Урок 278. 00:01:33
20.1. Рейкасты введение
Урок 279. 00:03:47
20.2. Знакомство с рейкастами
Урок 280. 00:02:36
20.3. DrawGizmos
Урок 281. 00:09:15
20.4. Дополнительные варианты виртуального каста
Урок 282. 00:06:06
20.5. Пример с нанесением урона. Подготовка
Урок 283. 00:03:45
20.6. Пример с нанесение урона. Реализация
Урок 284. 00:06:30
20.7. Пример с нанесением урона. Улучшение
Урок 285. 00:10:55
20.8. Анализ получившегося решения
Урок 286. 00:02:58
20.9. Физические слои. Матрица коллизий
Урок 287. 00:03:53
20.10. Слои и код теория
Урок 288. 00:03:00
20.11. Пример с рейкастами
Урок 289. 00:06:52
20.12. Дополнительные примеры
Урок 290. 00:05:36
20.13. Как работать с графиками
Урок 291. 00:06:53
20.14. Синус и косинус
Урок 292. 00:07:36
20.15. Lerp. Интерполяция
Урок 293. 00:04:38
20.16. Скалярное произведение
Урок 294. 00:08:20
20.17. Делаем область (угол) видимостти врага
Урок 295. 00:05:46
20.18. Расширяем систему (угол и дальность видимости)
Урок 296. 00:01:38
20.19. Векторное произведение
Урок 297. 00:05:38
20.20. Стабилизируем ракету
Урок 298. 00:01:22
21.1. Варианты движения персонажа
Урок 299. 00:01:36
21.2. Обзор сцены
Урок 300. 00:08:11
21.3. Физический вариант. Реализация
Урок 301. 00:05:50
21.4. Физический вариант. Результат
Урок 302. 00:07:52
21.5. Кинематический вариант. Реализация
Урок 303. 00:02:49
21.6. Кинематический вариант. Результаты
Урок 304. 00:03:25
21.7. Character Controller вариант. Реализация
Урок 305. 00:03:22
21.8. Character Controller вариант. Результат
Урок 306. 00:01:21
21.9. Про кастомный вариант движения
Урок 307. 00:00:29
21.10. Итоги по вариантам движения
Урок 308. 00:03:30
21.11. Cinemachine введение
Урок 309. 00:04:35
21.12. Параметры CinemachineBrain
Урок 310. 00:03:19
21.13. Основные параметры виртуальной камеры
Урок 311. 00:02:41
21.14. TopDown камера
Урок 312. 00:01:27
21.15. 3dPersonFollow вариант
Урок 313. 00:02:21
21.16. Орбитальная камера
Урок 314. 00:03:06
21.17. TargetGroup камера
Урок 315. 00:02:40
21.18. 3dPerson свободный вариант
Урок 316. 00:00:41
21.19. Итоги по пакету
Урок 317. 00:02:08
21.20. Пример с машинкой введение
Урок 318. 00:07:18
21.21. Пишем логику движения
Урок 319. 00:05:09
21.22. Дорабатываем логику движения
Урок 320. 00:04:48
21.23. Добавляем визуал и говорим про новую концепцию разработки
Урок 321. 00:05:26
21.24. Еще несколько украшательств
Урок 322. 00:03:46
21.25. Добавляем вращение частей машинки
Урок 323. 00:03:43
21.26. Результат и добавление новой камеры
Урок 324. 00:00:30
21.27. Финал
Урок 325. 00:00:32
22.1. Введение
Урок 326. 00:02:00
22.2. Гуманоидная система анимаций
Урок 327. 00:01:43
22.3. Подготовка
Урок 328. 00:07:02
22.4. Где брать анимации
Урок 329. 00:07:52
22.5. Ретаргетинг анимаций
Урок 330. 00:02:34
22.6. Окно animations
Урок 331. 00:05:29
22.7. Дополнительная практика
Урок 332. 00:05:44
22.8. Анимационные слои
Урок 333. 00:03:11
22.9. Маски в анимационных слоях
Урок 334. 00:06:23
22.10. Деревья смешивания
Урок 335. 00:07:24
22.11. Типы смешивания
Урок 336. 00:03:44
22.12. Анимационные события введение
Урок 337. 00:04:47
22.13. Анимационные события реализация
Урок 338. 00:02:07
22.14. Пара слов про анимационные ключи
Урок 339. 00:02:22
23.1. Введение
Урок 340. 00:01:12
23.2. Подготовка к примеру
Урок 341. 00:10:49
23.3. Пишем код передвижения
Урок 342. 00:05:36
23.4. Добавляем анимации и камеру
Урок 343. 00:04:15
23.5. Анализируем решение
Урок 344. 00:03:07
23.6. Паттерн фасад
Урок 345. 00:04:01
23.7. Доделываем контроллер
Урок 346. 00:03:29
23.8. Зачем мы вынесли управление
Урок 347. 00:13:08
23.9. По практикуемся еще немного
Урок 348. 00:01:54
23.10. Небольшое заключение
Урок 349. 00:01:15
23.11. Зачем это все
Урок 350. 00:01:23
23.12. NavMesh введение
Урок 351. 00:07:17
23.13. Navmesh сетка
Урок 352. 00:02:19
23.14. Решаем проблему лишних сгенерированных областей
Урок 353. 00:01:29
23.15. Подготовим врага
Урок 354. 00:07:02
23.16. Пользуемся сеткой из кода
Урок 355. 00:05:30
23.17. Подготовка к созданию контроллера врага
Урок 356. 00:14:49
23.18. Создание контроллера врага
Урок 357. 00:04:58
23.19. Создаем первого агента
Урок 358. 00:02:31
23.20. Физика и NavMeshAgent
Урок 359. 00:05:08
23.21. Настройки nav mesh agent
Урок 360. 00:09:20
23.22. Переделываем логику агра на вариант с агентом
Урок 361. 00:04:18
23.23. Navmesh link
Урок 362. 00:02:36
23.24. Obstacles
Урок 363. 00:02:18
23.25. Запекание сетки во время игры
Урок 364. 00:00:42
23.26. Выводы по пакету
Урок 365. 00:05:13
24.1. Введение
Урок 366. 00:03:17
24.2. Постановка проблемы
Урок 367. 00:05:19
24.3. База корутин. IEnumerator
Урок 368. 00:02:02
24.4. База корутин. Автоматический перебор
Урок 369. 00:01:09
24.5. В чем же асинхронность
Урок 370. 00:04:45
24.6. Особенность выполения корутин
Урок 371. 00:03:06
24.7. Менеджмент корутин
Урок 372. 00:03:35
24.8. Рекомендация по остановке корутин
Урок 373. 00:01:44
24.9. Ожидание другого IEnumerator
Урок 374. 00:07:01
24.10. Ожидание корутин
Урок 375. 00:08:31
24.11. Практика с корутинами 1
Урок 376. 00:01:54
24.12. Фиксим проблемки
Урок 377. 00:09:05
24.13. Пишем новый вариант движения
Урок 378. 00:00:56
24.14. Фиксим дрожание камеры
Урок 379. 00:07:09
24.15. Фиксим дрожание при повороте
Урок 380. 00:03:32
24.16. Доработаем зоны для агентов
Урок 381. 00:05:42
24.17. Практика с корутинами 2
Урок 382. 00:02:16
24.18. Как запустить корутину в немонобех классе
Урок 383. 00:05:37
24.19. Заканчиваем логику работы прыжка
Урок 384. 00:04:02
24.20. Дорабатываем вертикальное отклонение
Урок 385. 00:02:47
24.21. Добавляем анимацию прыжка
Урок 386. 00:00:58
25.1. Звуки в Unity
Урок 387. 00:04:05
25.2. Компонент audioSource
Урок 388. 00:02:15
25.3. Как воспроизводить звуки
Урок 389. 00:01:05
25.4. Параметр Pitch
Урок 390. 00:02:12
25.5. PlayOneShot
Урок 391. 00:03:53
25.6. Разбор audioMixer
Урок 392. 00:02:20
25.7. Создаем новые группы
Урок 393. 00:09:52
25.8. Как работать с миксером через код
Урок 394. 00:03:32
25.9. Эффекты
Урок 395. 00:00:17
25.10. Итоги по звуку
Урок 396. 00:00:37
25.11. Введение в шейдеры
Урок 397. 00:01:49
25.12. Что такое шейдеры
Урок 398. 00:01:31
25.13. Что такое шейдер граф
Урок 399. 00:01:52
25.14. Создание шейдеров
Урок 400. 00:03:50
25.15. Разговор про цвета
Урок 401. 00:02:33
25.16. Обзор интерфейса
Урок 402. 00:01:23
25.17. Master стек
Урок 403. 00:01:18
25.18. Про переменные
Урок 404. 00:05:01
25.19. Вершинный шейдер
Урок 405. 00:01:34
25.20. Результат синуса
Урок 406. 00:01:34
25.21. Про пространства
Урок 407. 00:01:44
25.22. Добавим время
Урок 408. 00:04:48
25.23. Шейдер градиента
Урок 409. 00:03:41
25.24. Шейдер растворения
Урок 410. 00:04:49
25.25. Подстраиваем шейдер растворения под наш случай
Урок 411. 00:02:32
25.26. Фиксим глаза
Урок 412. 00:07:11
25.27. Добавляем функционал спавна
Урок 413. 00:07:07
25.28. Отображение спавна
Урок 414. 00:06:44
25.29. Подсветка границы
Урок 415. 00:00:32
25.30. Финал по шейдерам
Урок 416. 00:00:49
26.1. Введение в 2D
Урок 417. 00:00:36
26.2. Импорт графических ассетов
Урок 418. 00:02:34
26.3. Спрайты
Урок 419. 00:02:03
26.4. SpriteRenderer
Урок 420. 00:03:19
26.5. Настройка спрайта
Урок 421. 00:03:49
26.6. 2д анимации
Урок 422. 00:02:49
26.7. Сортировка спрайтов на сцене
Урок 423. 00:03:25
26.8. Сортировка вдоль оси
Урок 424. 00:02:34
26.9. Sorting group
Урок 425. 00:02:39
26.10. Tilemaps
Урок 426. 00:03:15
26.11. Создаем Tile pallete
Урок 427. 00:02:20
26.12. Рисуем на тайлмапе
Урок 428. 00:07:56
26.13. TileRule
Урок 429. 00:04:07
26.14. Варианты tile rules
Урок 430. 00:02:39
26.15. Тайлмапы и коллайдеры
Урок 431. 00:02:03
26.16. Несколько тайлмапов
Урок 432. 00:08:35
26.17. Особенности работы в 2д
Урок 433. 00:05:33
26.18. Начинаем делать персонажа
Урок 434. 00:05:00
26.19. Добавляем определение земли
Урок 435. 00:05:36
26.20. Гравитация и прыжок
Урок 436. 00:07:13
26.21. Добавляем анимации
Урок 437. 00:05:57
26.22. Подключаем view
Урок 438. 00:04:37
26.23. Добавляем камеру с ограничением области
Урок 439. 00:01:38
26.24. Фиксим возможное залипание на стенах
Урок 440. 00:02:58
26.25. Фиксим залипание на потолке
Урок 441. 00:00:59
26.26. Фиксим плохую обработку коллизий
Урок 442. 00:03:06
26.27. Добавляем платформы
Урок 443. 00:00:20
26.28. Заключение
Урок 444. 00:00:56
27.1. Введение
Урок 445. 00:02:55
27.2. Что такое делегаты
Урок 446. 00:06:11
27.3. Знакомимся с делегатами
Урок 447. 00:01:32
27.4. Подписки и отписки на делегаты
Урок 448. 00:01:38
27.5. Особенности подписок
Урок 449. 00:04:33
27.6. Правильный вызов делегата
Урок 450. 00:02:46
27.7. Invocationlist
Урок 451. 00:05:23
27.8. Зачем это все нужно
Урок 452. 00:01:12
27.9. Введение в практический пример
Урок 453. 00:04:43
27.10. Делаем получение предмета с фильтрацией
Урок 454. 00:04:30
27.11. Пользуемся фильтрацией
Урок 455. 00:03:04
27.12. Анонимные методы
Урок 456. 00:03:51
27.13. Лямбда выражения
Урок 457. 00:04:10
27.14. Делегаты Action и Func
Урок 458. 00:02:20
27.15. Небольшой итог по практическому примеру
Урок 459. 00:01:46
27.16. Делегат как callback
Урок 460. 00:05:19
27.17. Делегат как callback. Реализация
Урок 461. 00:03:56
27.18. WaitUntil и WaitWhile
Урок 462. 00:01:04
27.19. Промежуточный итог по делегатам
Урок 463. 00:02:24
28.1. События введение
Урок 464. 00:06:19
28.2. Знакомимся с событиями
Урок 465. 00:05:10
28.3. Технические отличия делегатов и событий
Урок 466. 00:03:03
28.4. Более практические отличия
Урок 467. 00:01:46
28.5. Передача параметров в событии
Урок 468. 00:00:58
28.6. Использование Action
Урок 469. 00:01:34
28.7. Код стайл в отношении событий
Урок 470. 00:04:48
28.8. ВАЖНО. ПОДПИСКИ И ОТПИСКИ
Урок 471. 00:01:06
28.9. ВАЖНО. ЛЯМБДЫ И ПОДПИСКИ
Урок 472. 00:00:31
28.10. Практика введение
Урок 473. 00:06:09
28.11. Разгружаем визуал птички
Урок 474. 00:03:31
28.12. Выносим изменение скейла
Урок 475. 00:02:08
28.13. Универсализируем работу с Bird
Урок 476. 00:06:35
28.14. Выносим логику прыжка
Урок 477. 00:03:33
28.15. Выносим отображение смерти
Урок 478. 00:04:26
28.16. Выносим подсчет очков
Урок 479. 00:04:48
28.17. Делаем отображение очков
Урок 480. 00:11:08
28.18. Логика отслеживания смерти
Урок 481. 00:04:17
28.19. Заканчиваем рефакторинг
Урок 482. 00:03:24
28.20. Выводы
Урок 483. 00:01:23
29.1. Generics введение
Урок 484. 00:02:35
29.2. Generics подготовка примера
Урок 485. 00:05:54
29.3. Generics реализация
Урок 486. 00:01:31
29.4. Использование нескольких универсальных параметров
Урок 487. 00:04:34
29.5. Ограничения обобщений
Урок 488. 00:01:34
29.6. Какие еще могут быть ограничения
Урок 489. 00:02:31
29.7. Сериализация Generics
Урок 490. 00:03:19
29.8. Дополнительные вещи
Урок 491. 00:03:25
29.9. Простая реактивность с использованием Generics
Урок 492. 00:06:11
29.10. Простая реактивность. Подготовка
Урок 493. 00:02:15
29.11. Проблемы текущего подхода
Урок 494. 00:03:36
29.12. Пишем простой вариант реактивности
Урок 495. 00:03:28
29.13. Добавляем обобщение
Урок 496. 00:02:59
29.14. Меняем health на реактивность
Урок 497. 00:04:08
29.15. Используем реактивность снаружи
Урок 498. 00:01:03
29.16. Можно самим развивать эту идею
Урок 499. 00:01:56
29.17. Инкапсуляция. Введение
Урок 500. 00:01:38
29.18. Модификаторы доступа
Урок 501. 00:01:39
29.19. Конструкторы
Урок 502. 00:01:39
29.20. Ограничение типом
Урок 503. 00:01:42
29.21. Валидация входящих данных и ошибки
Урок 504. 00:01:58
29.22. Как работать с данными. Методы
Урок 505. 00:01:18
29.23. Зажевывание ошибок
Урок 506. 00:03:03
29.24. Методы проверки и Try методы
Урок 507. 00:03:15
29.25. События и свойства
Урок 508. 00:03:04
29.26. Получение коллекций
Урок 509. 00:04:05
29.27. ReadOnly интерфейсы. Выдача ссылочных типов на чтение
Урок 510. 00:02:20
29.28. IEnumerable
Урок 511. 00:03:21
29.29. Свои ReadOnly интерфейсы
Урок 512. 00:04:19
29.30. Защита типом на уровне логики
Урок 513. 00:02:30
29.31. Неявный доступ к ссылочным типам
Урок 514. 00:00:40
29.32. Заключение
Урок 515. 00:00:43
30.1. Введение
Урок 516. 00:04:33
30.2. Интерфейс IDisposable
Урок 517. 00:01:28
30.3. Кастинг типов введение
Урок 518. 00:04:17
30.4. Принцип работы. Апкастинг
Урок 519. 00:01:46
30.5. Принцип работы. Даункастинг
Урок 520. 00:03:32
30.6. В чем опасность даункаста
Урок 521. 00:05:07
30.7. Как работать с даункастом
Урок 522. 00:02:09
30.8. Перебор типов с использованием Switch
Урок 523. 00:02:07
30.9. Касты. Практика. Подготовка
Урок 524. 00:06:47
30.10. Касты. Практика. Добавляем здание
Урок 525. 00:06:33
30.11. Касты. Практика. Используем кастинг
Урок 526. 00:01:59
30.12. Тип object. Метод ToString
Урок 527. 00:03:28
30.13. Тип object. Метод GetType
Урок 528. 00:04:05
30.14. Тип object. Проблемы сравнения с помощью Equals
Урок 529. 00:02:59
30.15. Боксинг и анбоксинг
Урок 530. 00:00:59
30.16. Проблема структур и интерфейсов
Урок 531. 00:01:09
30.17. Чем же IEquatable лучше object.Equals
Урок 532. 00:09:00
30.18. Универсальный список и generics методы
Урок 533. 00:00:39
30.19. LINQ. Введение
Урок 534. 00:05:06
30.20. Select
Урок 535. 00:01:42
30.21. Where
Урок 536. 00:01:41
30.22. Совмещение разных методов
Урок 537. 00:02:15
30.23. Сортировка
Урок 538. 00:01:29
30.24. Первый или последний элемент
Урок 539. 00:01:56
30.25. Макс или мин значение
Урок 540. 00:02:41
30.26. Группировка по признаку
Урок 541. 00:01:20
30.27. Когда опасно использовать Linq
Урок 542. 00:01:47
30.28. Сериализация в Unity. Введение
Урок 543. 00:02:23
30.29. Какие требования есть к сериализуемым полям
Урок 544. 00:03:05
30.30. Сериализация. Практика
Урок 545. 00:01:22
30.31. Сериализация пользовательских типов
Урок 546. 00:05:50
30.32. Лайфхак с отображением словаря
Урок 547. 00:05:57
30.33. Атрибуты для защиты
Урок 548. 00:03:50
30.34. Кастомная валидация
Урок 549. 00:01:48
30.35. Исключения
Урок 550. 00:03:24
30.36. Демонстрация исключений
Урок 551. 00:02:41
30.37. Какие стандартные типы ошибок бывают
Урок 552. 00:02:43
30.38. Обработка исключений
Урок 553. 00:02:35
30.39. Несколько блоков catch
Урок 554. 00:03:39
30.40. Свои типы ошибок
Урок 555. 00:01:03
30.41. Заключение по исключениям
Урок 556. 00:02:54
31.1. Введение
Урок 557. 00:01:29
31.2. Подчищаем лишнее
Урок 558. 00:04:25
31.3. Делаем спавнеры. Спавн героя
Урок 559. 00:09:50
31.4. Делаем спавнеры. Спавн врагов
Урок 560. 00:04:12
31.5. Проблема порядка инициализации
Урок 561. 00:02:28
31.6. Возможные сомнительные решения
Урок 562. 00:06:51
31.7. Точка входа (bootstrap)
Урок 563. 00:05:25
31.8. Делаем экран загрузки
Урок 564. 00:02:46
31.9. Добавляем окно подтверждения начала игры
Урок 565. 00:06:36
31.10. Контроль должен быть не только на старте игры
Урок 566. 00:13:03
31.11. Добьем вьюху
Урок 567. 00:06:06
31.12. Выносим апдейт контроллеров
Урок 568. 00:04:00
31.13. Паттерн фабрика
Урок 569. 00:08:06
31.14. Делаем фабрику контроллеров
Урок 570. 00:16:05
31.15. Делаем фабрику персонажей
Урок 571. 00:09:55
31.16. Как сильно надо разбивать фабрики
Урок 572. 00:01:38
31.17. Заключение по фабрике
Урок 573. 00:05:24
31.18. Scriptable Objects. Настройки игры
Урок 574. 00:05:18
31.19. Конфиг для героя
Урок 575. 00:03:30
31.20. Конфиг для врага
Урок 576. 00:03:00
31.21. Особенности работы со ScriptableObject
Урок 577. 00:05:58
31.22. Убираем monobehaviour у спавнеров
Урок 578. 00:05:01
31.23. Папка Resources
Урок 579. 00:02:31
31.24. Можно подгружать не только конфиги
Урок 580. 00:01:49
31.25. Особенности работы с папкой Resources
Урок 581. 00:11:53
31.26. Добавляем игровые правила. Конфиги
Урок 582. 00:12:48
31.27. Описываем игровой режим
Урок 583. 00:07:24
31.28. Обрабатываем уничтожение объектов
Урок 584. 00:09:05
31.29. Геймплейный цикл
Урок 585. 00:03:19
31.30. Загрузка сцен
Урок 586. 00:07:46
31.31. Аддитивная загрузка сцен
Урок 587. 00:02:27
31.32. Заключение
Урок 588. 00:02:55
32.1. Введение
Урок 589. 00:05:20
32.2. О чем будет финальный блок
Урок 590. 00:04:11
32.3. Подготавливаем проект
Урок 591. 00:07:14
32.4. Организация папки Assets в проекте
Урок 592. 00:01:37
32.5. Куда двигаемся дальше
Урок 593. 00:02:01
32.6. Вводим понятие сервиса для решения проблем проекта
Урок 594. 00:07:31
32.7. Создаем сервис запуска корутин
Урок 595. 00:05:32
32.8. Создаем сервис загрузки ресурсов
Урок 596. 00:03:41
32.9. Создаем сервис конфигов
Урок 597. 00:07:32
32.10. Откуда брать конфиги
Урок 598. 00:06:36
32.11. Проверяем сервис конфигов
Урок 599. 00:02:30
32.12. Использование Namespace и работа через IDE
Урок 600. 00:04:38
32.13. Проблема внедрения зависимостей
Урок 601. 00:04:21
32.14. Сомнительное решение. Singleton
Урок 602. 00:05:13
32.15. Среднее решение. ServiceLocator
Урок 603. 00:02:31
32.16. Почему сервис локатор - среднее решение
Урок 604. 00:02:02
32.17. Хорошее решение. DIContainer
Урок 605. 00:05:10
32.18. Первая версия DIContainer. Регистрации
Урок 606. 00:06:22
32.19. Первая версия DIContainer. Добиваем контейнер
Урок 607. 00:05:46
32.20. Используем контейнер
Урок 608. 00:08:29
32.21. Разбираем особенности работы контейнера
Урок 609. 00:01:38
32.22. Несколько важных моментов
Урок 610. 00:05:42
32.23. Решаем проблему циклических зависимостей
Урок 611. 00:03:41
32.24. Точка входа для всего проекта
Урок 612. 00:06:07
32.25. Реализация точки входа
Урок 613. 00:03:47
32.26. Точка входа. Инициализация проекта
Урок 614. 00:05:21
32.27. Сервис подгрузки сцен
Урок 615. 00:03:10
32.28. На какие сцены разбивать проект
Урок 616. 00:03:58
32.29. Внедряем загрузочный экран
Урок 617. 00:04:59
32.30. Организуем переход между сценами
Урок 618. 00:08:33
32.31. Организуем точки входа и передачу контейнера
Урок 619. 00:06:16
32.32. Передача доп параметров на сцену
Урок 620. 00:04:57
32.33. Контейнер сцены и контексты программы
Урок 621. 00:04:29
32.34. Реализуем систему родительских контейнеров
Урок 622. 00:06:56
32.35. Поддержка глобального контейнера и контейнера сцены
Урок 623. 00:01:55
32.36. Промежуточное заключение по общему циклу работы проекта
Урок 624. 00:00:45
33.1. Введение
Урок 625. 00:00:51
33.2. С чего начнем
Урок 626. 00:07:29
33.3. Прокачиваем реактивность
Урок 627. 00:02:40
33.4. Добавляем возможность отписаться
Урок 628. 00:04:40
33.5. Зачем это нужно
Урок 629. 00:06:02
33.6. Фиксим неприятную проблему
Урок 630. 00:00:54
33.7. Добавляем валюты
Урок 631. 00:05:44
33.8. Создаем сервис кошелька
Урок 632. 00:05:38
33.9. Регистрируем и проверяем кошелек
Урок 633. 00:03:09
33.10. Из чего состоит задача сохранения данных
Урок 634. 00:03:15
33.11. Какие этапы надо реализовать для сохранения готовых данных
Урок 635. 00:01:41
33.12. Сериализация и десериализация
Урок 636. 00:03:35
33.13. В какой формат сериализовать
Урок 637. 00:02:48
33.14. Пакет для сериализации NewtonsoftJson
Урок 638. 00:03:55
33.15. Реализация json сериализатора
Урок 639. 00:04:42
33.16. Проверяем работу сериализатора
Урок 640. 00:01:47
33.17. Доп. настройки сериализации. Тип форматирования
Урок 641. 00:05:37
33.18. Доп. настройки сериализации. Обработка имени типа
Урок 642. 00:04:43
33.19. Ключ для сохранений
Урок 643. 00:03:45
33.20. Хранилище данных
Урок 644. 00:05:13
33.21. Реализация хранилища. Сохранение в файл
Урок 645. 00:03:01
33.22. Реализация хранилища. Сохранение в PlayerPrefs
Урок 646. 00:02:34
33.23. Cервис сохранений
Урок 647. 00:05:23
33.24. Реализация сервиса сохранений
Урок 648. 00:02:42
33.25. Регистрируем сервис
Урок 649. 00:06:49
33.26. Тестируем сервис сохранений
Урок 650. 00:01:27
33.27. Немного про реализацию на корутинах
Урок 651. 00:01:24
33.28. Актуализация данных проекта. Второй глобальный вопрос
Урок 652. 00:04:07
33.29. Создаем провайдер данных
Урок 653. 00:03:28
33.30. Задача сброса данных до дефолтного состояния
Урок 654. 00:04:28
33.31. Реализуем сброс данных на старте игры
Урок 655. 00:06:32
33.32. Откуда брать стартовое состояние данных
Урок 656. 00:03:18
33.33. Задача актуализации данных игры
Урок 657. 00:04:37
33.34. Реализуем идею актуализации данных
Урок 658. 00:04:17
33.35. Регистрируем сервис кошелька
Урок 659. 00:04:10
33.36. Особенности данной реализации
Урок 660. 00:03:52
33.37. Добавляем NonLazy регистрации
Урок 661. 00:01:32
33.38. Проверяем работу DataProvider
Урок 662. 00:01:32
33.39. Как разбивать данные
Урок 663. 00:01:28
33.40. Заключение по системе работы с данными
Урок 664. 00:00:49
34.1. Введение
Урок 665. 00:05:05
34.2. Приложение – это бизнес логика и ее отображение
Урок 666. 00:03:39
34.3. Мы неправильно делали игры
Урок 667. 00:01:29
34.4. Причем тут UI
Урок 668. 00:05:42
34.5. Какие есть подходы к разработке UI
Урок 669. 00:03:55
34.6. Про MVx подходы
Урок 670. 00:02:47
34.7. В чем суть MVP
Урок 671. 00:02:59
34.8. Отображение отдельной валюты с помощью MVP
Урок 672. 00:02:48
34.9. Делаем заготовку на сцене
Урок 673. 00:03:27
34.10. Конфиг для иконок валют
Урок 674. 00:05:48
34.11. Презентер валюты
Урок 675. 00:04:27
34.12. Фабрика для презентеров
Урок 676. 00:01:26
34.13. Важный нюанс по работе с контейнером
Урок 677. 00:04:12
34.14. Связываем готовую вью и презентер
Урок 678. 00:01:40
34.15. В чем прелесть пассивной View
Урок 679. 00:08:21
34.16. Создаем View динамически. Фабрика вьюх
Урок 680. 00:04:30
34.17. Динамический вариант создания вьюхи
Урок 681. 00:01:19
34.18. Иерархический MVP
Урок 682. 00:05:17
34.19. Делаем вьюху для кошелька
Урок 683. 00:06:18
34.20. Презентер кошелька
Урок 684. 00:02:15
34.21. Связываем все воедино
Урок 685. 00:02:58
34.22. Проблема инициализации и деинициализации сцены
Урок 686. 00:05:36
34.23. Прокачиваем контейнер
Урок 687. 00:06:07
34.24. Фиксим проблему с деинициализацией презентера кошелька
Урок 688. 00:02:10
34.25. Промежуточный итог по MVP
Урок 689. 00:02:58
34.26. Корневой канвас. Слои UI
Урок 690. 00:05:05
34.27. Как получать доступ к слоям
Урок 691. 00:08:40
34.28. Организация главного экрана
Урок 692. 00:05:02
34.29. Возвращаем отображение кошелька на главный экран
Урок 693. 00:02:15
34.30. Попапы в игре
Урок 694. 00:04:45
34.31. Как выглядит стандартная организация попапа
Урок 695. 00:05:51
34.32. Готовим базу под визуальную часть
Урок 696. 00:03:17
34.33. Прикручиваем вьюху к тестовому попапу
Урок 697. 00:07:36
34.34. Готовим базу под презентер
Урок 698. 00:02:24
34.35. Делаем презентер тестового попапа
Урок 699. 00:05:01
34.36. Сервис для попапов. Открытие тестового попапа
Урок 700. 00:06:48
34.37. Реализуем процесс закрытия
Урок 701. 00:05:06
34.38. Немножко про внешние коллбэки
Урок 702. 00:02:31
34.39. Регистрируем сервис попапов для главного меню
Урок 703. 00:01:52
34.40. Фиксим баг с отображением UI префабов
Урок 704. 00:06:25
34.41. Открываем тестовый попап
Урок 705. 00:02:18
34.42. DOTween. Анимации UI (и не только)
Урок 706. 00:01:29
34.43. Импорт DOTween
Урок 707. 00:01:44
34.44. Базовые возможности
Урок 708. 00:03:22
34.45. Методы From и SetEase
Урок 709. 00:03:33
34.46. Tween и правильное прерывание анимаций
Урок 710. 00:03:19
34.47. Очередь анимаций. Sequence
Урок 711. 00:03:35
34.48. Поддержка анимаций в дочерних классах
Урок 712. 00:01:51
34.49. Добавление коллбэков в анимацию
Урок 713. 00:05:25
34.50. Синхронизация с Presenter
Урок 714. 00:03:49
34.51. Мелкие замечания по работе дутвина
Урок 715. 00:02:13
34.52. Чего мы добились
Урок 716. 00:04:09
34.53. Внедряем сервис пройденных уровней
Урок 717. 00:03:55
34.54. Добавляем возможность сохранения
Урок 718. 00:04:37
34.55. Делаем конфиги уровней
Урок 719. 00:05:14
34.56. Делаем префаб меню уровней
Урок 720. 00:08:01
34.57. Разбираем скрипты слоя View
Урок 721. 00:06:22
34.58. Презентер для тайла уровня
Урок 722. 00:07:23
34.59. Презентер для попапа меню уровней
Урок 723. 00:04:04
34.60. Небольшой нюанс с подписками
Урок 724. 00:06:39
34.61. Тестируем попап
Урок 725. 00:07:24
34.62. Небольшой бонус
Урок 726. 00:04:22
34.63. Итоги. Универсального решения нет
Урок 727. 00:03:04
35.1. Введение
Урок 728. 00:03:49
35.2. Как можно мыслить при подготовке
Урок 729. 00:03:07
35.3. Какие подходы к организации игровых сущностей мы знаем
Урок 730. 00:04:20
35.4. Data oriented подход и ECS фреймворки
Урок 731. 00:03:12
35.5. ООП ХУЖЕ ECS
Урок 732. 00:03:04
35.6. Какое решения я предлагаю выбрать в нашем проекте
Урок 733. 00:01:29
35.7. Как мы будем скрещивать ООП и ECS
Урок 734. 00:03:07
35.8. Стартовая подготовка. Запускаем EntryPoint с любой сцены
Урок 735. 00:00:54
35.9. Стартовая подготовка. Сцена геймплея
Урок 736. 00:03:49
35.10. Стартовая подготовка. Тестовый геймплей
Урок 737. 00:01:17
35.11. Организуем компоненты
Урок 738. 00:05:05
35.12. Заводим первые компоненты
Урок 739. 00:01:26
35.13. Про реактивность в этом подходе
Урок 740. 00:06:31
35.14. Организуем Entity
Урок 741. 00:02:52
35.15. Фабрика сущностей
Урок 742. 00:01:46
35.16. Парочка красивостей
Урок 743. 00:02:29
35.17. Пользуемся фабрикой
Урок 744. 00:04:03
35.18. Начинаем организацию систем
Урок 745. 00:02:43
35.19. Реализуем первую систему
Урок 746. 00:01:55
35.20. Небольшие особенности нашей реализации
Урок 747. 00:03:10
35.21. Организуем подключение систем к Entity
Урок 748. 00:00:38
35.22. Подключаем систему движения к тестовой сущности
Урок 749. 00:02:47
35.23. Реализуем методы жизненного цикла Entity
Урок 750. 00:05:39
35.24. Реализуем обновление жизненного цикла сущностей
Урок 751. 00:02:44
35.25. Тестируем работу систем
Урок 752. 00:01:08
35.26. Проблема связи сущностей и Unity
Урок 753. 00:01:10
35.27. MonoEntity – мостик между Entity и миром Unity
Урок 754. 00:02:30
35.28. Делаем фабрику под MonoEntity
Урок 755. 00:03:47
35.29. Автоматическое уничтожение MonoEntity
Урок 756. 00:04:39
35.30. Тестируем работу с MonoEntity
Урок 757. 00:02:00
35.31. Подвязываем компоненты из Unity
Урок 758. 00:01:56
35.32. Делаем регистрацию Rigidbody
Урок 759. 00:01:35
35.33. Доделываем механику движения с использованием rigidbody
Урок 760. 00:02:48
35.34. Проверка системы и итог по MonoEntity
Урок 761. 00:01:10
35.35. Анализируем опыт использования нашего решения
Урок 762. 00:02:45
35.36. Что было бы неплохо добавить
Урок 763. 00:02:27
35.37. Решаем проблему засорения класса Entity
Урок 764. 00:01:20
35.38. Генерация кода
Урок 765. 00:05:23
35.39. Как вообще это работает
Урок 766. 00:02:19
35.40. Генерируем объявление partial class Entity
Урок 767. 00:03:25
35.41. Рефлексия
Урок 768. 00:01:04
35.42. Лайфхак по рефлексии и генерации
Урок 769. 00:04:08
35.43. Ищем необходимые типы по проекту
Урок 770. 00:04:17
35.44. Начинаем перебирать типы компонентов
Урок 771. 00:01:15
35.45. Пройдемся отладчиком
Урок 772. 00:02:27
35.46. Создаем свойство для получения компонента
Урок 773. 00:05:56
35.47. Генерируем свойство для получения поля компонента
Урок 774. 00:02:33
35.48. Фиксим имена дженериков
Урок 775. 00:04:16
35.49. Генерируем метод Add
Урок 776. 00:03:07
35.50. Метод Add без параметров
Урок 777. 00:00:39
35.51. Автоматизируем вызов генерации
Урок 778. 00:02:22
35.52. Пользуемся сгенерированным кодом
Урок 779. 00:01:23
35.53. Заключение по генерации кода
Урок 780. 00:02:59
35.54. Промежуточное заключение по организации сущностей в нашей игре
Урок 781. 00:02:17
36.1. Введение
Урок 782. 00:01:17
36.2. Начинаем делать призрака
Урок 783. 00:00:54
36.3. Подготовка к созданию призрака
Урок 784. 00:00:57
36.4. Добавляем механику поворота. Данные
Урок 785. 00:02:09
36.5. Добавляем механику поворота. Логика
Урок 786. 00:01:31
36.6. Конфигурируем призрака и тестим
Урок 787. 00:02:08
36.7. Фича здоровья и смерти. Данные
Урок 788. 00:02:10
36.8. Фича здоровья и смерти. Логика
Урок 789. 00:02:25
36.9. Добавляем механику смерти призраку
Урок 790. 00:03:20
36.10. Как пользоваться сервисами в системах. Делаем механику уничтожения при смерти
Урок 791. 00:01:19
36.11. Добавляем систему релиза к сущности
Урок 792. 00:01:12
36.12. Обработка смерти – продолжительный процесс
Урок 793. 00:01:43
36.13. Продолжительная обработка смерти. Данные
Урок 794. 00:05:04
36.14. Продолжительная обработка смерти. Логика таймера
Урок 795. 00:00:53
36.15. Продолжительная обработка смерти. Дорабатываем релиз
Урок 796. 00:01:13
36.16. Тестирование и новые проблемки
Урок 797. 00:01:58
36.17. Добавляем обработку смерти в другие механики
Урок 798. 00:00:59
36.18. Какие остались неприятности
Урок 799. 00:01:55
36.19. Базовая единица условий
Урок 800. 00:01:04
36.20. Комбинирование условий
Урок 801. 00:03:30
36.21. Реализуем ICompositeConditon
Урок 802. 00:02:01
36.22. Добавляем варианты логических операций
Урок 803. 00:02:37
36.23. Внедряем условия для движения и поворота
Урок 804. 00:01:30
36.24. Дорабатываем системы движения и поворота
Урок 805. 00:02:12
36.25. Дорабатываем остальные системы. Новые условия
Урок 806. 00:01:25
36.26. Внедряем новые условия в систему релиза и смерти
Урок 807. 00:00:56
36.27. Промежуточный итог по фиче смерти
Урок 808. 00:02:36
36.28. Фича получения урона
Урок 809. 00:01:43
36.29. Идея “реактивного” ивента
Урок 810. 00:02:11
36.30. Делаем сам “реактивный” ивент
Урок 811. 00:01:13
36.31. Делаем IReadOnly интерфейсы
Урок 812. 00:02:42
36.32. Фича получения урона. Компоненты
Урок 813. 00:03:36
36.33. Система получения урона
Урок 814. 00:00:51
36.34. Проверяем систему получения урона
Урок 815. 00:01:48
36.35. Добавляем коллайдеры. Механика призрака
Урок 816. 00:01:07
36.36. Реализуем сквозное движение
Урок 817. 00:00:53
36.37. Механика нанесения урона касанием
Урок 818. 00:01:44
36.38. Использовать ли NonAlloc касты
Урок 819. 00:01:21
36.39. Делаем буффер
Урок 820. 00:02:08
36.40. Отслеживание контактов. Данные
Урок 821. 00:02:18
36.41. Отслеживание контактов. Прикрепляем данные
Урок 822. 00:03:38
36.42. Система детектирования контактов
Урок 823. 00:02:03
36.43. Игнорируем себя при детектировании
Урок 824. 00:03:24
36.44. Как будем получать сущности для нанесения урона
Урок 825. 00:01:28
36.45. Решаем задачу связи коллайдеров и сущности
Урок 826. 00:02:12
36.46. Сервис регистрации коллайдеров
Урок 827. 00:02:46
36.47. Делаем регистрации коллайдеров
Урок 828. 00:02:16
36.48. Доделываем систему фильтрации сущностей
Урок 829. 00:01:30
36.49. Тестируем системы детектирования контактов
Урок 830. 00:01:17
36.50. Фича нанесения урона касанием. Данные
Урок 831. 00:03:23
36.51. Система нанесения урона касанием
Урок 832. 00:01:55
36.52. Обрабатываем выход из контакта
Урок 833. 00:00:41
36.53. Проверяем систему нанесения урона касанием
Урок 834. 00:02:12
36.54. Отключение коллайдеров при смерти. Компоненты
Урок 835. 00:01:55
36.55. Система отключения коллайдеров при смерти
Урок 836. 00:01:21
36.56. Тестируем систему
Урок 837. 00:00:40
36.57. Что умеет основной персонаж
Урок 838. 00:03:28
36.58. Готовим базу под префабы персонажей
Урок 839. 00:01:09
36.59. Готовим префаб основного героя
Урок 840. 00:02:43
36.60. Готовим метод создания основного героя
Урок 841. 00:01:26
36.61. В чем заключается суть механики атаки
Урок 842. 00:03:18
36.62. Как будем реализовывать
Урок 843. 00:02:21
36.63. Процесс атаки, заводим необходимые данные
Урок 844. 00:03:14
36.64. Система старта атаки
Урок 845. 00:02:28
36.65. Таймер процесса атаки
Урок 846. 00:02:48
36.66. Система завершения атаки
Урок 847. 00:01:32
36.67. Начинаем добавлять данные для работы процесса атаки
Урок 848. 00:01:06
36.68. Добавляем компонент для определения движения сущности
Урок 849. 00:02:11
36.69. Добиваем и проверяем процесс атаки
Урок 850. 00:01:15
36.70. Добавляем данные для задержки перед выстрелом
Урок 851. 00:04:04
36.71. Система определения окончания задержки
Урок 852. 00:01:17
36.72. Проверяем работу задержки
Урок 853. 00:02:42
36.73. Добавляем данные для реализации выстрела
Урок 854. 00:02:38
36.74. Реализуем систему выстрела
Урок 855. 00:01:05
36.75. Проверяем механику выстрела
Урок 856. 00:01:56
36.76. Механика отмены атаки. Данные
Урок 857. 00:01:45
36.77. Система отмены атаки
Урок 858. 00:01:07
36.78. Проверяем механику отмены атаки
Урок 859. 00:01:43
36.79. Механика кулдауна
Урок 860. 00:01:47
36.80. Тестируем кулдаун атаки
Урок 861. 00:02:42
36.81. Делаем префаб снаряда
Урок 862. 00:02:34
36.82. Добавляем метод создания снаряда
Урок 863. 00:01:02
36.83. Добавляем стрельбу снарядами
Урок 864. 00:01:07
36.84. Проблема стартового поворота
Урок 865. 00:01:22
36.85. Фиксим проблему стартового поворота
Урок 866. 00:01:48
36.86. Механика смерти при касании. Данные
Урок 867. 00:02:39
36.87. DeathMaskTouchDetectorSystem
Урок 868. 00:01:05
36.88. Тестируем уничтожение снарядов
Урок 869. 00:01:58
36.89. Промежуточные итоги по работе
Урок 870. 00:02:23
36.90. Можно ли расширять наше решение
Урок 871. 00:01:41
37.1. Введение
Урок 872. 00:01:19
37.2. Из чего состоит искусственный интеллект
Урок 873. 00:01:29
37.3. Объект исполняющий указания
Урок 874. 00:00:37
37.4. Сенсоры
Урок 875. 00:02:12
37.5. Блок памяти
Урок 876. 00:02:26
37.6. Блок принятия решений
Урок 877. 00:03:32
37.7. Насколько это разбиение строгое
Урок 878. 00:01:54
37.8. Как оно устроено у нас в проекте
Урок 879. 00:01:14
37.9. На основе чего мы будем делать логику принятия решений
Урок 880. 00:03:14
37.10. Машина состояний. Теория
Урок 881. 00:02:11
37.11. В чем заключается суть работы машины состояний
Урок 882. 00:01:58
37.12. Как будет при этом меняться поведение
Урок 883. 00:02:56
37.13. Почему мы изучаем именно эту концепцию
Урок 884. 00:02:04
37.14. Объявляем IState
Урок 885. 00:01:50
37.15. Реализуем базовый State
Урок 886. 00:01:37
37.16. Делаем обертку для состояния и связей
Урок 887. 00:01:26
37.17. Реализуем переходы
Урок 888. 00:02:07
37.18. Добиваем StateNode
Урок 889. 00:02:42
37.19. Стейт машина. Внутреннее устройство
Урок 890. 00:02:44
37.20. Как конфигурировать стейт машину
Урок 891. 00:03:31
37.21. Как будут выполняться переходы
Урок 892. 00:02:32
37.22. Анализ возможности перехода
Урок 893. 00:01:00
37.23. Начинаем делать ИИ для призрака
Урок 894. 00:00:38
37.24. Реализуем состояние покоя
Урок 895. 00:03:50
37.25. Реализуем состояние случайного движения
Урок 896. 00:03:15
37.26. Как будем генерировать новое направление
Урок 897. 00:05:14
37.27. Делаем стейт машину для AI
Урок 898. 00:02:47
37.28. Заводим фабрику для создания ИИ
Урок 899. 00:03:23
37.29. Заводим TimerService
Урок 900. 00:03:24
37.30. Настраиваем переходы между состояниями
Урок 901. 00:02:03
37.31. Фиксим отписки
Урок 902. 00:01:31
37.32. Добиваем стейт машину случайного движения
Урок 903. 00:02:19
37.33. Как будем реализовывать обработку ИИ
Урок 904. 00:00:54
37.34. Заводим абстракцию для мозгов
Урок 905. 00:02:46
37.35. Делаем реализацию мозгов на основе машины состояний
Урок 906. 00:01:45
37.36. Пишем сервис жизненного цикла для ИИ. Хранение мозгов
Урок 907. 00:02:07
37.37. Реализуем логику привязки мозгов и сущности
Урок 908. 00:03:34
37.38. Реализуем апдейт ИИ
Урок 909. 00:03:53
37.39. Подключаем все в работу
Урок 910. 00:01:39
37.40. Тестируем работу ИИ
Урок 911. 00:00:56
37.41. В чем особенность поведения главного героя
Урок 912. 00:02:23
37.42. Как будем делать управление героем. Проблема простой машины состояний
Урок 913. 00:02:41
37.43. Иерархическая машина состояний
Урок 914. 00:01:09
37.44. Реализуем возможность использовать стейт машину как состояние
Урок 915. 00:02:39
37.45. Реализуем сервис ввода пользователя
Урок 916. 00:01:56
37.46. Делаем ПК реализацию ввода
Урок 917. 00:02:14
37.47. Делаем состояние движение под управлением игрока
Урок 918. 00:01:25
37.48. Состояние атаки
Урок 919. 00:02:30
37.49. Добавляем компонент текущей цели
Урок 920. 00:01:28
37.50. Начинаем реализовывать стейт поворота к цели
Урок 921. 00:01:29
37.51. Добавляем компонента трансформа
Урок 922. 00:00:53
37.52. Доделываем стейт поворота к цели
Урок 923. 00:06:23
37.53. Собираем стейт машину с автоматическим поворотом и атакой
Урок 924. 00:05:45
37.54. Формируем мозги для нашего героя
Урок 925. 00:01:09
37.55. Тестируем получившуюся реализацию
Урок 926. 00:01:36
37.56. Идея параллельно выполняющихся состояний
Урок 927. 00:02:17
37.57. Реализуем параллельный стейт
Урок 928. 00:01:18
37.58. Делаем конкретную реализацию
Урок 929. 00:03:36
37.59. Реализуем алгоритм выбора ближайшей цели
Урок 930. 00:01:56
37.60. Добавляем генерацию Try метода для получения поля компонента
Урок 931. 00:04:21
37.61. Добиваем логику фильтрации
Урок 932. 00:02:40
37.62. Состояние поиска текущей цели
Урок 933. 00:01:52
37.63. Добиваем логику поведения героя
Урок 934. 00:01:59
37.64. Тестируем поведение. Проблема текущей реактивности
Урок 935. 00:02:13
37.65. Как улучшить реактивность. EqualityComparer
Урок 936. 00:02:43
37.66. Прокачиваем реактивность
Урок 937. 00:01:12
37.67. Тестируем финально реализацию поведения главного героя
Урок 938. 00:02:08
37.68. Итог по ИИ и машине состояний
Урок 939. 00:01:42
37.69. Стейт машина и ECS
Урок 940. 00:01:20
38.1. Введение
Урок 941. 00:01:53
38.2. В чем будет заключаться геймплей
Урок 942. 00:01:23
38.3. Конфиги для персонажей
Урок 943. 00:01:17
38.4. Конфиги для призрака и героя
Урок 944. 00:01:25
38.5. Что еще можно было вынести в настройки
Урок 945. 00:02:41
38.6. Поддержка конфигов для персонажей
Урок 946. 00:01:29
38.7. Тестируем конфиги
Урок 947. 00:02:01
38.8. Добавляем класс со слоями
Урок 948. 00:01:42
38.9. Тестируем работу и правим прицеливание
Урок 949. 00:01:13
38.10. Как размышлять дальше
Урок 950. 00:05:04
38.11. Создаем фабрику главного героя
Урок 951. 00:03:27
38.12. Создаем фабрику врагов
Урок 952. 00:02:56
38.13. Тестируем фабрики
Урок 953. 00:01:47
38.14. Что именно мы сделали
Урок 954. 00:01:32
38.15. Добавляем возможность отличать главного героя
Урок 955. 00:01:17
38.16. Отношения между персонажами
Урок 956. 00:02:44
38.17. Добавляем фичу команд
Урок 957. 00:03:35
38.18. Добавляем поддержку команд в нанесение урона
Урок 958. 00:02:14
38.19. Не боимся пользоваться статикой
Урок 959. 00:00:51
38.20. Проблема с проджектайлами
Урок 960. 00:01:39
38.21. Добавляем новый слой окружения
Урок 961. 00:01:31
38.22. Добавляем проверку касания другой команды
Урок 962. 00:02:27
38.23. Добиваем проджектайл
Урок 963. 00:01:32
38.24. Проверка проджектайлов
Урок 964. 00:01:26
38.25. Добиваем логику выбора цели с учетом команд
Урок 965. 00:00:51
38.26. Тестируем логику выбора цели
Урок 966. 00:01:29
38.27. Начинаем организацию геймплейного цикла
Урок 967. 00:01:09
38.28. Как будем организовывать волны
Урок 968. 00:01:15
38.29. Какая информация нам нужна
Урок 969. 00:01:08
38.30. Конфиг режима зачистки врагов
Урок 970. 00:01:46
38.31. Добиваем конфигурацию уровней
Урок 971. 00:01:48
38.32. Определяем то, как должны работать этапы
Урок 972. 00:03:36
38.33. Начинаем реализацию режима зачистки врагов
Урок 973. 00:03:00
38.34. Учитываем смерть врагов
Урок 974. 00:01:55
38.35. Заканчиваем реализацию режима зачистки врагов
Урок 975. 00:02:37
38.36. Заводим фабрику стейджей
Урок 976. 00:02:42
38.37. Тестируем стейдж зачистки врагов
Урок 977. 00:01:20
38.38. Сервис для контроля смены стейджей
Урок 978. 00:05:36
38.39. Добавляем функциональность
Урок 979. 00:01:36
38.40. Заводим префаб триггера
Урок 980. 00:01:33
38.41. Формируем сущность триггера
Урок 981. 00:02:40
38.42. Заводим сервис для триггера подготовки
Урок 982. 00:03:30
38.43. Реализуем функционал
Урок 983. 00:02:25
38.44. Как собирать все вместе
Урок 984. 00:00:57
38.45. Как будет выглядеть машина состояний для геймплея
Урок 985. 00:00:51
38.46. Заводим реализацию машины состояния под геймплей
Урок 986. 00:01:38
38.47. Стейт подготовки
Урок 987. 00:01:07
38.48. Стейт обработки стейджа
Урок 988. 00:01:18
38.49. Стейты победы и поражения. База
Урок 989. 00:03:18
38.50. Стейт победы
Урок 990. 00:00:52
38.51. Стейт поражения
Урок 991. 00:02:55
38.52. Фабрика стейтов
Урок 992. 00:02:39
38.53. Стейт кор лупа
Урок 993. 00:02:25
38.54. Добавляем возможность отслеживать результат стейджа
Урок 994. 00:01:36
38.55. Добиваем стейт кор лупа
Урок 995. 00:02:33
38.56. Начинаем делать стейт машину для всего геймплея
Урок 996. 00:04:24
38.57. Сервис хранения главного героя
Урок 997. 00:02:04
38.58. Добиваем стейт машину геймплея
Урок 998. 00:03:12
38.59. Делаем GameplayStatesContext
Урок 999. 00:02:16
38.60. Собираем цикл геймплея
Урок 1000. 00:02:04
38.61. Тестируем получившийся геймплей
Урок 1001. 00:01:48
38.62. Фиксим сохранение при победе
Урок 1002. 00:01:24
38.63. Финальный тест
Урок 1003. 00:01:13
38.64. Стейт машина как способ организации игры
Урок 1004. 00:02:09
38.65. Заключение
Урок 1005. 00:01:47
39.1. Введение
Урок 1006. 00:00:57
39.2. Что будем делать с графикой
Урок 1007. 00:01:19
39.3. Импорт пакетов с модельками
Урок 1008. 00:02:02
39.4. Разбираем все по папкам
Урок 1009. 00:01:34
39.5. Важный момент про обновление ассетов
Урок 1010. 00:01:45
39.6. Добавляем модельку призрака
Урок 1011. 00:03:04
39.7. Добавляем модельку героя
Урок 1012. 00:01:08
39.8. Проверяем как все выглядит в игре
Урок 1013. 00:03:07
39.9. Дружим отображение и данные сущностей
Урок 1014. 00:01:44
39.10. Делаем WalkingView
Урок 1015. 00:01:42
39.11. Оставшиеся наследники
Урок 1016. 00:02:02
39.12. Добиваем анимации
Урок 1017. 00:02:22
39.13. Внедряем модельку стрелы
Урок 1018. 00:03:04
39.14. Внедряем модельку лука
Урок 1019. 00:02:13
39.15. Подбираем тайминги для атаки
Урок 1020. 00:01:39
39.16. Как синхронизировать скорость анимации с логикой
Урок 1021. 00:02:13
39.17. Скрипт для изменения мультипликатора скорости анимации атаки
Урок 1022. 00:01:03
39.18. Добавляем пак с эффектами
Урок 1023. 00:02:11
39.19. Эффект получения урона
Урок 1024. 00:02:04
39.20. Добавляем спавн для врагов
Урок 1025. 00:03:08
39.21. Добавляем отображение спавна для врагов
Урок 1026. 00:02:34
39.22. Добавляем отображение текущей цели для героя
Урок 1027. 00:01:28
39.23. Начинаем добавлять окружение
Урок 1028. 00:01:13
39.24. Добавляем окружающую арену
Урок 1029. 00:00:47
39.25. Почему фиксированный размер арены
Урок 1030. 00:00:32
39.26. Последний штрих – триггер активакции
Урок 1031. 00:00:36
39.27. Тестируем финал по графике
Урок 1032. 00:02:07
39.28. Начинаем украшать UI. Импорт спрайтов
Урок 1033. 00:01:21
39.29. Выбираем иконки валют
Урок 1034. 00:02:11
39.30. Дорабатываем currencyView
Урок 1035. 00:02:05
39.31. Немного про шрифты
Урок 1036. 00:01:09
39.32. Правим кнопку
Урок 1037. 00:02:17
39.33. Добавляем фон в главное меню
Урок 1038. 00:01:20
39.34. Проверяем адаптивность
Урок 1039. 00:00:54
39.35. Фиксим фон
Урок 1040. 00:00:43
39.36. Адаптация под челку телефона
Урок 1041. 00:02:18
39.37. Фиксим адаптацию под вырезы устройств. Safe area
Урок 1042. 00:02:13
39.38. Преображаем оставшиеся элементы. Меню выбора уровней
Урок 1043. 00:01:01
39.39. Загрузочный экран
Урок 1044. 00:00:41
39.40. Подготовка UI для геймплея
Урок 1045. 00:01:51
39.41. Подготовка UI для геймплея. Новые классы
Урок 1046. 00:01:55
39.42. Новые префабы и регистрации
Урок 1047. 00:01:53
39.43. Попап победы. Структура префаба
Урок 1048. 00:00:57
39.44. Попап победы. View часть
Урок 1049. 00:01:01
39.45. Попап победы. Presenter часть
Урок 1050. 00:01:29
39.46. Попап поражения. Полная аналогия
Урок 1051. 00:00:33
39.47. Новая анимация для попапов
Урок 1052. 00:01:46
39.48. Добавляем попапы победы и поражения в систему
Урок 1053. 00:02:11
39.49. Добавляем показ попапов при поражении и победе
Урок 1054. 00:01:46
39.50. Тестируем попапы
Урок 1055. 00:01:26
39.51. Отображение стейджей. Префаб
Урок 1056. 00:01:10
39.52. Встраиваем отображение стейджа
Урок 1057. 00:00:32
39.53. Проверяем отображение стейджей
Урок 1058. 00:01:03
39.54. Добавляем хп бары. Вьюхи
Урок 1059. 00:01:48
39.55. Префабы хп баров
Урок 1060. 00:01:51
39.56. Презентер хп бара
Урок 1061. 00:02:19
39.57. Вьюха дисплея хп баров
Урок 1062. 00:01:13
39.58. Добавляем новые компоненты
Урок 1063. 00:05:06
39.59. HealthDisplayPresenter
Урок 1064. 00:01:44
39.60. Встраиваем хп бары и тестируем
Урок 1065. 00:00:58
39.61. Заключение
Урок 1066. 00:12:47
40.1. 01 УМЕНЬШИ ВЕС СВОЕЙ ИГРЫ! Оптимизация веса игры Unity. Как уменьшить вес игры на Unity. Ч.1
Урок 1067. 00:19:48
40.2. 02 УМЕНЬШИ ВЕС СВОЕЙ ИГРЫ! Ч.2 Оптимизация веса игры Unity. Как уменьшить вес игры на Unity
Урок 1068. 00:11:52
40.3. 03 ОПТИМИЗАЦИЯ ИНТЕРФЕЙСА ИГРЫ в Unity! Лучшие советы по производительности!
Урок 1069. 00:01:29
40.4. Введение
Урок 1070. 00:04:35
40.5. Небольшие изменения по скрипту запуска сцены бутстрапа
Урок 1071. 00:01:55
40.6. Не делай преждевременных оптимизаций
Урок 1072. 00:04:00
40.7. Многие оптимизации – не ваша специализация
Урок 1073. 00:01:59
40.8. Frame debugger
Урок 1074. 00:02:03
40.9. Статический батчинг
Урок 1075. 00:02:06
40.10. Нюансы статического батчинга
Урок 1076. 00:02:15
40.11. А если объекты двигаются
Урок 1077. 00:01:44
40.12. Свет и тени
Урок 1078. 00:03:30
40.13. Запечка света
Урок 1079. 00:01:22
40.14. Фиксим запечку света
Урок 1080. 00:02:00
40.15. Фиксим свет для динамических объектов
Урок 1081. 00:01:53
40.16. Quality. Пресеты графики
Урок 1082. 00:02:27
40.17. Настройки URP. Отключаем SSAO
Урок 1083. 00:02:13
40.18. Остальные настройки URP
Урок 1084. 00:01:51
40.19. Итоги по графике
Урок 1085. 00:00:42
40.20. Оптимизация UI
Урок 1086. 00:02:09
40.21. Выбираем окно для тестов
Урок 1087. 00:05:25
40.22. Как использовать атласы
Урок 1088. 00:02:25
40.23. Думайте как упаковывать спрайты
Урок 1089. 00:05:38
40.24. Оптимизации по коду
Урок 1090. 00:06:09
40.25. Profiler
Урок 1091. 00:00:57
40.26. Заключение
Урок 1092. 00:01:32
41.1. Введение
Урок 1093. 00:03:01
41.2. Способности изменения статов
Урок 1094. 00:03:33
41.3. Реализуем сами статы
Урок 1095. 00:02:59
41.4. Добавляем системы синхронизации статов
Урок 1096. 00:02:37
41.5. Эффекты для изменения статов
Урок 1097. 00:02:34
41.6. Система для перерасчета статов при добавлении эффекта
Урок 1098. 00:02:20
41.7. Тестируем систему эффектов
Урок 1099. 00:05:56
41.8. Добавляем конфиги способностей
Урок 1100. 00:02:16
41.9. Заводим базу под сами абилки
Урок 1101. 00:02:32
41.10. Фабрика абилок и добавление их к персонажу
Урок 1102. 00:02:02
41.11. Тестирование абилок
Урок 1103. 00:01:04
41.12. Система дропа абилок
Урок 1104. 00:04:41
41.13. Реализация системы дропа абилок
Урок 1105. 00:04:02
41.14. Выбор абилки. Префабы
Урок 1106. 00:04:53
41.15. Выбор абилки. View часть
Урок 1107. 00:07:18
41.16. Выбор абилки. Presenter часть. Логика
Урок 1108. 00:06:03
41.17. Добавляем опыт и уровни герою
Урок 1109. 00:06:37
41.18. Подвязываем на изменение уровня выбор способностей
Урок 1110. 00:01:39
41.19. Фикс отображения уровня
Урок 1111. 00:04:01
41.20. Добавялем сервис паузы
Урок 1112. 00:04:08
41.21. Добавляем отображение опыта и уровня
Урок 1113. 00:02:01
41.22. Промежуточный итог
Урок 1114. 00:02:04
42.1. Введение. Конфиги под лут
Урок 1115. 00:03:05
42.2. Настройка конфигов
Урок 1116. 00:05:28
42.3. База под сбор лута
Урок 1117. 00:05:30
42.4. Поддержка конкретных вариантов лута
Урок 1118. 00:03:47
42.5. Сервис дропа лута
Урок 1119. 00:02:42
42.6. Дроп лута с врагов
Урок 1120. 00:04:54
42.7. Сервис сбора лута
Урок 1121. 00:04:01
42.8. Состояние сбора лута
Урок 1122. 00:05:22
42.9. Отображение и начисление монет
Урок 1123. 00:04:23
42.10. Прокачка статов. Конфиги
Урок 1124. 00:03:04
42.11. Данные пользователя
Урок 1125. 00:01:55
42.12. Правим фабрику героя
Урок 1126. 00:03:58
42.13. Сервис прокачки статов
Урок 1127. 00:02:03
42.14. Внедряем сервис прокачки статов
Урок 1128. 00:06:23
42.15. Попап магазина прокачки. View часть
Урок 1129. 00:06:42
42.16. Попап магазина прокачки. Presenter часть
Урок 1130. 00:03:02
42.17. Подключаем попап в систему
Урок 1131. 00:05:54
42.18. Отображение 3д модели на UI
Урок 1132. 00:10:07
42.19. Прокачка способностей
Урок 1133. 00:02:45
42.20. Способность мультивыстрела - конфиги
Урок 1134. 00:08:23
42.21. Добавляем механику мультивыстрела
Урок 1135. 00:03:39
42.22. Добавляем абилку мультивыстрела
Урок 1136. 00:01:21
42.23. Способность баунса стрел - конфиг
Урок 1137. 00:06:27
42.24. Добавляем логику отскока от стен
Урок 1138. 00:01:34
42.25. Уменьшение счетчика отскоков
Урок 1139. 00:04:30
42.26. Апгрейдим систему условий
Урок 1140. 00:02:57
42.27. Добавляем саму абилку баунса
Урок 1141. 00:01:33
42.28. Добавляем стат скорости атаки
Урок 1142. 00:02:18
42.29. Готовим базу для изменения скорости атаки
Урок 1143. 00:03:47
42.30. Система перерасчета таймингов
Урок 1144. 00:01:35
42.31. Синхронизируем скорость анимации атаки
Урок 1145. 00:01:50
42.32. Финальный финал