4 ошибки в Unity которые совершают начинающие программисты | Часть 1

4 ошибки в Unity которые совершают начинающие программисты | Часть 1

Роман Сакутин

6 лет назад

59,532 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Чёрный Оникс
Чёрный Оникс - 28.06.2023 02:02

Если показываете своё произношение английского, то имейте в виду, что будет правильно "компОнент".

Ответить
Clyde Warrior
Clyde Warrior - 29.03.2023 12:46

Я так и не понял, почему нельзя обращаться к transform

Ответить
Hi i'm Fahrenheit
Hi i'm Fahrenheit - 20.02.2023 22:23

Совершенно бесполезное видео.

Ответить
Артем Николаевич
Артем Николаевич - 17.02.2023 07:55

Хотел бы уточнить, т.к. ребята по первому пункту путаются. Как я понял.
transform.SameMethod такая запись это аналог записи GetComponent<Transform>.SameMethod. Т.е. вызов метода гетКомпонент идёт каждый кадр. Вместо этого гетКомпонент вызывается один раз на старте (или раньше) и дальше уже юзается ссылка соответствующего типа.

Ответить
SashaGun GD
SashaGun GD - 11.01.2023 16:40

У МЕНЯ В НОВОМ ПРОЕКТЕ 27 ОШИБОК, А Я ДАЖЕ НИЧЕГО НЕ МЕНЯЛ!!!!!!

Ответить
Tural Aliyev
Tural Aliyev - 15.10.2022 18:34

так а как использовать transform если не в update если менять его постоянно собираемся ?

Ответить
sweepe
sweepe - 05.10.2022 10:45

В 4ом пункте ButtonPrefab должен быть не GameObject в таком случае, а ItemPresenter и тогда произойдет магия и не нужно будет использовать после инстантиейта GetComponent...

Ответить
time timer
time timer - 11.04.2022 20:15

Что вместо трансформа тогда использовать?

Ответить
dplaym music
dplaym music - 31.03.2022 19:29

2.) Зачем вообще эти проверки и ивенты если при получения урона вы по любому будете менять Health там же строчкой меняете Display.text =health;

Ответить
Тв. Гвардин Сержант
Тв. Гвардин Сержант - 24.01.2022 18:24

На счет 4 проблемы не понял - что она исправляет/решает? У нас так же есть дочерний объект с компонентом Text, поле которого вообще не меняется.

Ответить
Skelesheit club
Skelesheit club - 18.01.2022 11:38

1. А как тогда сделать передвижение объекта?

Ответить
Давид Максеев
Давид Максеев - 23.09.2021 23:18

Слово "однерка" не существует!

Ответить
александр алехин
александр алехин - 21.08.2021 23:37

консультации ведете?

Ответить
Владислав Игоревич
Владислав Игоревич - 13.08.2021 15:41

Спасибо за видео. Header произносится как "хэда" или "хэдр", а не как "хизр"

Ответить
Oliver Reviews
Oliver Reviews - 29.07.2021 22:28

Слышишь, классический антипатинг, как тебе там живется? Ты там гонишь, что кто-то пишет говно код? СУКА КАК МЖНО СПИЗДАНУТЬ КЛАССИЧЕСКИЙ АНТИПАТИНГ? Гуглил бы хоть что такое. Невозможно, если человек занимается программированием, когда он попросту не знает названий банальнейших вещей, не бывает так. Кто вам пишет код, текст для видео? Этим явно занимаешься не ты, Роман

Ответить
Максим Москальчук
Максим Москальчук - 20.07.2021 00:10

походу видос поутратил в актуальности.. да и кого не посмотри- того же Brackeys - всьо там с трансформом хорошо и официально Юнити говорит вот смотрите этого парня.

Ответить
Винищувач Youtube
Винищувач Youtube - 22.12.2020 09:49

Ну ну, смотреть советы от дауна, который и сам нихера не умеет

Ответить
стас
стас - 15.10.2020 00:29

Отлично
Но мало
Еще

Ответить
EpochEmerge
EpochEmerge - 06.10.2020 12:53

Почему бы во втором примере не обращаться к здоровью через свойство, где и будет реализованы проверки и вызов события? Очевидно же, то при обращении к Set здоровье будет меняться в 99% случаев

Ответить
Gazzi
Gazzi - 09.09.2020 12:50

С чего вдруг get_transform вызывает GetComponent<Transform>() загляни-ка в dnSpy

Ответить
Shrek228
Shrek228 - 04.09.2020 23:22

А что делать если все курсы гавно, а миллиардов долларов на курсы этого чувака у меня нет? Как обучиться c# на юнити?

Ответить
Alexander Alexander
Alexander Alexander - 27.08.2020 19:30

PyGame убьет Unity

Ответить
Aharon Zilberman
Aharon Zilberman - 26.08.2020 18:58

В первом примере ты был против использования transform в Update, в третьем уже за, при этом не предложив никакой альтернативы. Лишь бы что сморозить?

Ответить
Дмитрий Качусов
Дмитрий Качусов - 02.07.2020 01:26

Ошибки скорей в использовании самого языка программирования C# и актуальны не только для Unity, но видео хорошее в любом случае)

Ответить
Sergey
Sergey - 01.07.2020 23:24

Использование transform это в первую очередь удобно и кратко, заниматься кэшированием и ленивой загрузкой это лишний код который должен быть оправдан.
Потом если и будут проблемы с производительностью то совсем не факт что получение transform`a будет узким горлышком, возможно все манипуляции с трансформацией объекта будут в разы дороже чем получение transfrom`a. Да и где тесты подтверждающие это? Насколько медленнее? GetComponent просто ищет компонент линейным поиском. Transform всегда в списке компонентов первый искать то особо и не надо, я лично сомневаюсь что GetComponent<Transform> и получение компонента через свойство transform будут отрабатывать за одно и тоже время.

Ответить
hematogen50g
hematogen50g - 29.06.2020 10:35

Непонятно, как без апдейта жить. Дождавшись события вызывать нужный метод через InvokeRepeating("MethodName",Time.deltaTime)? Это уже байтодрочерством попахивает. А если ты каждый кадр проверяешь всего то навсего несколько булеанов, это что сильно скажется на производительности?

Ответить
Хочу в IT
Хочу в IT - 28.06.2020 06:20

Не понял, почему нельзя создать Observable, который будет триггерить на _health, у нас range будет 100 max, и магии никакой, каждый фрейм считать не надо, и вроде производительность не падает?Если что я правда не знаю, хочу послушать ваше мнение, спасибо!)

Ответить
Te Core
Te Core - 26.06.2020 17:00

С каких это пор сравнение двух флоатов, пусть даже в апдейте, стало тяжёлой операцией?))

Ответить
Aleksey Tretiakov
Aleksey Tretiakov - 25.06.2020 00:33

На i7 шестилетней давности: луп на миллион итераций дает такие результаты: обращение к кэшированному трансформу: 55мс. Обращение к не кэшированному трансформу: 104мс. Объявление локального инта и проверка его на «меньше или равно»: 6 мс.
Луп на 100к итераций - 5мс, 10мс, 0мс.
Луп на 25к итераций - 1мс, 2мс, 0 мс.
Луп на 10к итераций - 0мс, 0мс, 0мс.

Если объектов до 25-50 тысяч, то имхо смысла с кэшем трансформа запариваться нет. Проверка значений практически не сказывается на производительности.

Ответить
Alex Call
Alex Call - 17.06.2020 22:22

А что делать, если после установки unity, в Unity Hub при нажатии на проект ничего не происходит, ничего не открывается. А когда создаёшь новый проект он запускается и всё работает, но при выходе и входе в него он также перестаёт запускаться.

Пробовал переустанавливать unity - ничего не изменилось. Ставил все версии.

Ответить
Mrg Screen
Mrg Screen - 10.06.2020 10:24

Самая главная ошибка, которую может допустить новичок юнити, это смотреть видео с этого канала

Ответить
Ольга Крутышка
Ольга Крутышка - 23.05.2020 16:50

И что использовать вместо transform?

Ответить
Kronie Craft
Kronie Craft - 14.05.2020 17:50

Годно, грешил сильно проверкой в update

Ответить
Сиражудин
Сиражудин - 13.05.2020 01:47

Я вообще андроид разработчик, что я тут делаю

Ответить
Supin_dimas
Supin_dimas - 11.05.2020 18:00

Ролик небольшой, но полезный, спасибо.

Ответить
IVAN SHAKHOV
IVAN SHAKHOV - 28.04.2020 13:45

Не сказал бы что трансформы в апдейтах пускай даже каждый кадр едят там что-то сверхестественное) По оптимизации таких вещей впринципе даже можно недумать)
Игра даже на самом убогом телефоне ~за 2к рублей ,нормально будет работать с трансформами в апдейте.. Смысл этой оптимизации 0))
Если ищете оптимизацию, лучше копайте в сторону шейдеров, там можно значительно оптимизировать игру, к примеру игра с неправильными шейдерами выдает 20 фпс, сделайте нужные вам шейдеры и получите 60-100 фпс из 20, вот это оптимизация) Лучше про такое пишите уроки)
Оптимизируйте модели,эффекты.

Ответить
Mrg Screen
Mrg Screen - 20.04.2020 01:12

Почему о секретах unity мне рассказывает человек, который читает header как "хидер"? Или документация юньки не на инглише написана?

Ответить
Xami
Xami - 20.03.2020 19:09

1. Использование свойства transform
2. Постоянные проверки в Update
3. Использование непонятных чисел, вместо полей с понятным названием
4. Поиск дочерних объектов

Ответить
Дмитрий Суфрай
Дмитрий Суфрай - 22.12.2019 11:09

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

Ответить
VAN GOG
VAN GOG - 16.12.2019 18:55

заместо слова нет, есть вместо

Ответить
Sergei Glukhachev
Sergei Glukhachev - 11.12.2019 05:36

1. Когда что-либо кому-либо разъясняете за Unity необходимо всегда вести ликбез в контексте версии Unity, т.к. то что справедливо в одной версии не всегда справедливо для другой.
2. По поводу 4ого пункта: ItemPresenter не гетнуть как компонент т.к. он не унаследован от Component, и уж тем более не накинуть на геймобжект т.к. он не унаследован от MonoBehaviour (не говоря уже о том что имя наследника MonoBehaviour должно совпадать с именем файла в котором он описан).

Ответить
MULTIK
MULTIK - 07.12.2019 03:12

Почти вовремя, аудио в финале, с голосом сработали)

Ответить
Leuan Legoev
Leuan Legoev - 06.11.2019 16:56

6 лайков до нового видосика)

Ответить
Tomas Gammister
Tomas Gammister - 12.10.2019 16:32

))))

Ответить
Виталий Иванов
Виталий Иванов - 09.09.2018 15:31

1. Поводу этого, намного полезней было бы сказать, что ребята получайте все компоненты при инициализации, затем обращайтесь к методам и полям во время работы. Что-бы лишний раз, не вызывать функции в update, у которых время исполнения гораздо больше.

2. Проверки в Update. Хм, а вы все еще думаете, что создавая события вы тем самым что можете ждать? События также имеют свой стак и также апдейтятся. Проверки здоровья, на столько ничтожно мелкие операции, что не каких тут нагрузок неощутимы. Update неопасен такими операциями, но если вы туда будете засовывать медленные функции (которые долго работают), например какой нибудь find то конечно это уже перебор.

Ну и самая главная ошибка новичков, изначально многополигональные модели в огромном числе. Это самое уязвимое место в любых играх, не оптимизированные модели, злоупотребление высоким полигонажем особенно с кучей постэффектов, динамическим светом и тому подобное. А кодом, просадить оптимизацию в целом нужно постараться и быть совсем мало осведомленным.

Ответить
gentleNES
gentleNES - 14.07.2018 23:56

Роман, если возможно, снимите видео с советами по организации структуры проекта в Unity. Это было бы очень здорово!

Ответить
Not a Pro Gamer
Not a Pro Gamer - 12.07.2018 16:54

Надо было дорисовать слово в сцене. xD

Ответить
Роман
Роман - 11.07.2018 20:30

кеширование transform встроили еще в 2017 юню, так что можно спокойно к нему обращаться на прямую. Я сам не проверял, кому не лень потестируйте

Ответить
Nako Rinn
Nako Rinn - 11.07.2018 19:08

Давай курс для продвинутых )

Ответить