Фишки в C# и Unity, о которых ты не слышал!

Поделиться
HTML-код
  • Опубликовано: 2 ноя 2024

Комментарии • 152

  • @abobaabobus7010
    @abobaabobus7010 2 года назад +9

    Для коллекций только для чтения, которые являются листом, лучше использовать IReadOnlyList, в который так же входит IEnumerable, это даст возможность обращаться через индекс, а не только через foreach в случае IEnumerable

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Верно подмечено, благодарю)

    • @vladimirkuznetsov3601
      @vladimirkuznetsov3601 2 года назад

      Тем более, что доступ через foreach вызывает боксинг на IEnumerable

  • @andrey30966
    @andrey30966 2 года назад +7

    16:50 есть ещё такое) ireadonlylist ireadonlydictionary ireadonlycollection
    Погуглите там не сложно)
    17:20 вместо замочка можно ПКМ по названию компонента, и там Properties. Работает как отдельное залоченое окно для данного компонента. Как в инспекторе, так и в Project табе.
    Пользуйтесь! 😉

  • @tr0sty
    @tr0sty 2 года назад +4

    Сахар ? и ?? с проверкой на null нужно юзать очень осторожно, потому что они внутри используют неперегруженный оператор ==, поэтому с монобехами, например, их юзать категорически нельзя. Вроде в новых версиях C# это собираются поправить.

    • @sh42913
      @sh42913 2 года назад

      Тоже хотел написать об этом

  • @psy_gamer
    @psy_gamer 2 года назад +2

    С возвращением!)
    Смотрел все ролики и могу сказать, что все они хороши!
    Буду дальше ждать новых видео от тебя!

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      Привет, спасибо за тёплые слова. Ради этого и делаю упор на качество)
      По плану целых 10 видосов уже есть. Вопрос только в том, как бы время на всё это найти

  • @q-kyoto
    @q-kyoto 2 года назад +3

    Ты вернулся!) Шикарные видео, да и слушать тебя очень приятно) Жду с нетерпением новых видео)

  • @yggdrasills
    @yggdrasills 2 года назад +2

    12:25. Проверяя на null оператор is является самым производительным. Попробуйте взять бенчмарки

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Ну, как-то тестил я "==" и "is" в профайлере ради интереса и "==" был пошустрее

    • @yggdrasills
      @yggdrasills 2 года назад +2

      @@NightTrainCode стало интересно. Проверил и оказалось, что is все же быстрее в 2 раза. При том, что == как раз производит всякую магию в методе Object.CompareBaseObjects. Вначале идет апкаст в тип object и проверяется уже object == null, а после еще проверяет Object.IsNativeObjectAlive, где под капотом все равно все сводится к оператору is). Замеры проводил через Perfomance Test Report библиотеку

  • @AlexK-pe6po
    @AlexK-pe6po Год назад +1

    Большинство фишек я и так знал, но было и что-то новенькое

  • @aver005
    @aver005 2 года назад +1

    Я в шоке, не думал, что такую годноту кто-то будет выгружать на ютуб.
    Спасибо, бро, за такие классные видосы!

  • @Hafune
    @Hafune 2 года назад +2

    Хороший канал, очень удобная подача материала.
    Прошлое видео которое я смотрел про Leoecs. Несмотря на то что сам leoecs уже изменился, объяснено всё очень доходчиво и видео не теряет актуальности (даже можно для других ecs применять). Как только возникали вопросы тут же получал на них ответ (например про связь сущности со объектами на сцене и в обратную сторону).
    Успехов !)

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Спасибо большое, всегда рад помочь)

  • @montyforester9112
    @montyforester9112 2 года назад +12

    Спасибо! Узрел несколько внезапных фишек, типа "field:" и "Alt+Click на папку в проекте". А вот объяснять про return/continue/break - это, кмк, уже за гранью добра и зла :))

    • @NightTrainCode
      @NightTrainCode  2 года назад +2

      Ахах, на здоровье)
      За гранью то за гранью, но, оказывается, не для всех очевидно

  • @Quadq
    @Quadq 2 года назад +3

    Реально узнал много нового. По некоторым темам искал долго инфу в интернете так и не нашёл, но потом нашёл это видео. Это видео не из тех самых стандартных обучалок где расскажут про разве что атрибуты.

  • @HUNTER-lp5hy
    @HUNTER-lp5hy 2 года назад +9

    Не понял когда ты рассказывал про сериализацию свойств, достаточно было сделать сет приватным, чтобы его нельзя было менять. Еще кстати прикольно если бы ты добавил, что при поиске есть возможность отфильтровать по типу. Например нужно найти сцену с названием level1. ты можешь так написать t:scene level1. В окне иерархии тоже это работает например мне нужно найти все объекты на которых висит скрипт Enemy. Можно вот так сделать t:Enemy

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      С поиском годный лайфхак ты вспомнил)
      Про сериализацию: да, можно просто private сделать, но если в свойство добавить какие-то действия в get или set, то оно тоже перестанет отображаться в инспекторе. Поэтому и показал второй способ на такой случай

  • @KENISEG
    @KENISEG 2 года назад +1

    жесть,
    видео ОЧЕНЬ богато на полезные вещи!
    аж голова лопается с первого раза

  • @ilyaplekhanov2373
    @ilyaplekhanov2373 Год назад +1

    С первой секунды начало резать слух произношением. В скобках указал как правильно читается
    геймАбджект (но читаешь потом Обджект пул)
    инстанТиэйт (инстанШиейт)
    гет кАмпанент ([kəmˈpəʊnənt])
    юнити Инжин (Энжайн)

  • @sTaRiiKan
    @sTaRiiKan Год назад +1

    Как же круто что нашел этот канал) спасибо.

  • @KIRya055-Miass
    @KIRya055-Miass Год назад +1

    Благодарю тебя, за твои видео, всегда нахожу то, что я не знал, ты ещё один из тех, кто дарует мне знания, короче, спасибо, благодарю, продолжай так же, хорошо получается 👍

  • @EpikTMK
    @EpikTMK 2 года назад

    Сижу, нифига не понимаю,но так внимательно наблюдаю и слушаю..

  • @РоманКривжа
    @РоманКривжа 2 года назад +1

    Долгожданное возвращение))

  • @Veyron104
    @Veyron104 Год назад

    11:05 спасибо!) Была такая штука) пришлось все ID итемов сдвинуть направо)

  • @PelipUnityDev
    @PelipUnityDev 2 года назад +1

    Как всегда очень круто. С возвращением)))

  • @RomanUnreal
    @RomanUnreal 2 года назад +1

    Музыка из начала видео: "скачать бесплатно металл без авторских прав")))

  • @grandmax6223
    @grandmax6223 2 года назад +3

    Ключ брик, да, если бы я так сказал на собесе, то меня бы точно ушатали бриком

  • @limestoneMinecraft
    @limestoneMinecraft 2 года назад +5

    Развивайся дружище, желаю тебе поскорее получить монетизацию и выпустить много качественного контента. Также успехов с игрой тебе.

  • @abobaabobus7010
    @abobaabobus7010 2 года назад +1

    Про выражения switch хотелось бы по подробнее(для зрителей), штука мощная, но не все её понимают, хотя там 5 минут поиграться и почитать документацию, но у меня коллеги на работе до сих пор не вывозят логику работы такого выражения, особенно когда прямо там объявляешь переменные, так еще и условия проверяешь

    • @NightTrainCode
      @NightTrainCode  2 года назад

      По идее то да, с большинством фишечек поиграться по 5 минут и разобраться, что к чему
      А про switch можно, конечно, ещё было пару примеров снять с другими типами, но всё равно смысл один и тот же
      В курсе уже буду такие моменты тщательно разжевывать)

  • @BeluCatBMG
    @BeluCatBMG 2 года назад +2

    Половина видео сводится к фразе: Используйте Rider вместо богомерзкого Visual Studio

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      Пхахах. После Rider'а как-то зашёл в Visual Studio спустя год. В общем... как зашёл, так и вышел...

  • @ЭдуардКик
    @ЭдуардКик 2 года назад

    Есть ещё одна удобная штука.
    Обычный метод
    void Start() { }
    Можно заменить на
    IEnumerator Start() {}
    Юнити запустит его как обычный старт. Но как корутину. Можно использовать для инициализаций.
    IEnumerator Start()
    {
    while( Game.IsInit == false)
    {
    yield return null;
    {
    {

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      IEnumerator - зло, никогда его не юзаем, только асинки
      А про то, к каким ошибкам может привести while при его неправильном использовании и переходе между сценами вообще молчу

  • @StratoCatster
    @StratoCatster 2 года назад +1

    "Пжлста помедленнее!! Я записыую!" (с)
    Спасибо за видео, а теперь, пожалуйста, почините меня обратно))

  • @ДмитрийКуликов-м7м
    @ДмитрийКуликов-м7м 2 года назад

    Качество на высоте, дружище! Мб уже писали, но null-coalescing (??=, ??) лучше избегать в unity, особенно новичкам. Загугли, у юньки есть проблемы с ним, вроде как до сих пор не пофиксили.

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Спасибо)
      Да, трабл в статике я уже с ними нашёл, про что сказал в видео. А так пока всё было окей

    • @sh42913
      @sh42913 2 года назад +3

      @@NightTrainCode, не там дело не в статике на самом деле, а в том, что проверка на null для UnityEngine.Object реализована своя особенная(override Equals()), с обращением к нативной части внутри. Когда мы дестроим UnityEngine.Object, то он уничтожается в нативной части движка, а вот C#-оболочка продолжает существовать и фактически для C# она != null, поэтому весь шарповый сахарок(?./??/etc) видит живую оболочку и говорит "Да не, всё ок, он не нул". Поэтому для юнитёвских объектов всегда надо проверять явно ==/!=/Equals(null). Так же эта особенная проверка теряется, если мы сохраняем ссылку на интерфейс, реализованный в юнити-объекте, тк компилятор больше не знает, что на той стороне у нас UnityEngine.Object и надо использовать особый Equals().

  • @Артем-б4т8л
    @Артем-б4т8л 2 года назад +1

    поставил лайк и, конечно же, оставил комментарий, потому что вай-вай-вай. спасибо за контент)

  • @mistertwink
    @mistertwink Год назад +1

    Это все так интересно, но все еще так непонятно. Надеюсь, наступит момент, когда я буду смотреть подобные видео без сильного напряжения извилин! Спасибо за видео.

    • @NightTrainCode
      @NightTrainCode  Год назад +1

      Если будешь заниматься этим делом каждый день, то наступит)

    • @mistertwink
      @mistertwink 11 месяцев назад

      @@NightTrainCode а ты случайно репетиторством по юнити не занимаешься? 😀

    • @NightTrainCode
      @NightTrainCode  11 месяцев назад +1

      @@mistertwink Иногда занимаюсь)
      Напиши мне вк / в тг, если интересно

  • @lewaplay
    @lewaplay 2 года назад +1

    13:03 сильно!

  • @Lucio11a
    @Lucio11a 2 года назад +1

    Спасибо за видео!..
    Интересно, сколько надо наяривать в Unity, чтобы так его понимать и писать норм код?.. Кое-какими фишками из ролика я, конечно, пользовался. Например публичными полями с лямбда, вместо свойств, или запихиванием группы объектов через замочек (не в том же виде, что в видео, но вообще... типа пула объектов)
    Но в остальном - куча нового, куча непонятного...
    Я тут к дз на курсах наблюдателя к шашкам прикрутить не могу :D чтоб ходы записывать, а потом проигрывать, не то что код вменяемый писать...

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Ахахах, спасибо за комментарий, всё с опытом придёт)

  • @SeawardRu
    @SeawardRu Год назад +1

    using Random = UnityEngine.Random;
    А что так можно было? Ура! Спасибо!

  • @nfurtin
    @nfurtin 2 года назад +1

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

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Ахах, спасибо большое, рад помочь)
      Потом мой курс от нуля до джуна, как выйдет, можешь так же распространять 😹

  • @Илья-д7о8й
    @Илья-д7о8й 2 года назад

    Видео огонь, некоторые моменты значительно упростят кодинг, будет ли видео про addressables?

  • @serjag13
    @serjag13 2 года назад +1

    Отличная информация и подача, желаю успехов с каналом!
    Контент вышка!

  • @VitVit312
    @VitVit312 2 года назад +1

    Доров сахарок, давно тебя не было, у нас тож рост произошёл за это время, больше 1млн установок без вложений в рекламу
    Как обычно у тебя хороший контент :)
    Надеюсь больше не будешь пропадать :)

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Привет, поиск по запросу - мощная вещь, поздравляю)
      Спасибо, надеюсь, что минимум по видосику в месяц будет выходить

  • @ИльяМаглич-ь2е
    @ИльяМаглич-ь2е 2 года назад +1

    ОГО, НОВЫЙ ВИДОС. ТЫ ЖИВОЙ!

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Конечно, ахах, привет)

    • @ИльяМаглич-ь2е
      @ИльяМаглич-ь2е 2 года назад +1

      @@NightTrainCode не хочешь сделать видос по DOTween ?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@ИльяМаглич-ь2е Есть в списке)

  • @РоманКривжа
    @РоманКривжа 2 года назад +1

    Прекрасные советы. Многими фишками сам пользуюсь.

  • @tarassamarin1776
    @tarassamarin1776 2 года назад +1

    Мне понравилось, продолжай в том же духе.

  • @mad1015
    @mad1015 2 года назад +1

    Канал не брасай, очень качественный контент

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      Спасибо, не собираюсь)

  • @newGames_0
    @newGames_0 2 года назад

    Мужик, в ютубе запрос выдаёт лишь английские варианты. Попробуй сделать видос на эту тему.

  • @Agranam
    @Agranam Год назад +1

    Отличный ролик! Спасибо)

  • @GameDevWasteland
    @GameDevWasteland 2 года назад +2

    Bro, в свойствах нет двух аксессоров Эсть get аксессор и set мутатор -)

  • @yzero3648
    @yzero3648 2 года назад +1

    Оч много полезного, крутяк

  • @proKaps
    @proKaps 2 года назад +1

    Топово!

  • @GGamess
    @GGamess Год назад +1

    ждем рецептов шашлыка

  • @VADIM-SOLOV
    @VADIM-SOLOV 2 года назад +1

    классные фишки) очень полезный видос получился) спасибо!

  • @hiroprotagonist9240
    @hiroprotagonist9240 2 года назад +1

    Спасибо за видос✌
    Ребят посоветуйте с чего начать в Unity c#

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Посоветовал бы один курс на Udemy, так их там сейчас приобрести нельзя в России :/
      А свой курс от нуля до джуна буду пилить, но на это нужно время

    • @andrey30966
      @andrey30966 2 года назад

      Пройди какой то хороший курс. Что бы основы все объяснили - и сложилась некая цельная картинка что да как.

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@andrey30966 Вот да. А порекомендовать на данный момент я могу только курсы от Сакутина, за остальные не ручаюсь)

  • @KENISEG
    @KENISEG 2 года назад +1

    когда геткомпонент стал тяжелым методом?)) если объект известен, он чисто по нему проверяет наличие компонента и всё.
    вот файндобжект это да, юнити пердак рвёт.

  • @VyacheslavTamplier
    @VyacheslavTamplier 2 года назад +1

    Огромное спасибо за годные советы!

  • @TheDzzirtuoz
    @TheDzzirtuoz 2 года назад +1

    Великий суп наварили

  • @maxBornysov
    @maxBornysov 2 года назад +1

    Очень круто, спасибо!

  • @Fenneig
    @Fenneig Год назад +1

    Привет! Слушай у меня небольшая каша в голове возникла, может расскажешь что да как:
    Значит у нас есть несколько видов делегатов Action UnityAction EventHandler
    Как я разобрался UnityAction используется когда надо что-то в Unity UI передать.
    Но вот чем отличается Action от event EventHandler для меня загадка. И то и то одинаково используется, так в чем разница?

  • @strelok6903
    @strelok6903 2 года назад +1

    Красава продолжай ,тащи канал ,очень полезно ,выручаешь оч хорошо, я как раз начинаю делать игру ,и твои уроки кстати

    • @NightTrainCode
      @NightTrainCode  2 года назад

      На здоровье, спасибо за коммент)

  • @ДенисШепелёв-ф3ч
    @ДенисШепелёв-ф3ч 2 года назад

    Привет, можешь сделать видео, как ты реализовываешь некий проект на Leo ECS? Да, у тебя было видео, но в какие - то моменты ты съедаешь слова, что - то недоговариваешь, что вполне логично, ведь видео на 20 минут. А что если просто сделать полноценную игру используя данный архитектурный паттерн. Уверен, что было бы очень круто и полезно. Заранее спасибо)

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Привет. В теории можно, а так, не юзаю ECS и выжимаю максимум из монобехов. Пока что мне это не очень интересно)

  • @SMT-ks8yp
    @SMT-ks8yp 2 года назад

    2:20 странное, я использовал разве что Instantiate().GetComponent(). (Инстантиэйт возвращает объект, и из него сразу ГетКомпонент.) Но если ГетКомпонент можно сократить, круто. А если всё-таки компонента не окажется?
    9:57 А этот ключ event работает на UnityEvent, например?
    12:20 так стоп, то есть, можно одновременно делать проверку на is и при прохождении сразу получать переменную нужного типа, не используя дальше в ветке as?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      1) Его там не может не оказаться, так как в поле мы указываем нужный тип. То есть в поле Unit я не смогу засунуть рандомный GameObject через инспектор
      2) Не использую UnityEvent. Это класс, а не делегат. Его можно сделать с { get; private set; }, а подписываться и отписываться через AddListener и RemoveListener. Ключ event туда не засунешь
      3) Чего?)

    • @SMT-ks8yp
      @SMT-ks8yp 2 года назад

      @@NightTrainCode
      1) То есть, мы не можем попытаться присвоить значение этому полю через Instantiate если нужного компонента на создаваемом объекте нет? Или можем, но поле останется как было?
      2) А, понятно.
      3) Ну,
      if(variable is NeededClass) {
      var newVariable = variable as NeededClass
      }
      else
      if(variable is AnotherClass) {
      ...
      }
      Вот типа такого у меня было, а получается, что присвоение можно делать прямо оператором is.

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@SMT-ks8yp 1) Ну объявляем поле Unit. В него мы никак не перетащим объект без этого класса через инспектор
      3) if (variable is AnyClass anyClass)

    • @SMT-ks8yp
      @SMT-ks8yp 2 года назад

      @@NightTrainCode
      1) ой, всё, я напутал, это же мы не ранее объявленной переменной присваиваем, это мы копируем объект с компонентом, на который там ссылка.

  • @RomanUnreal
    @RomanUnreal 2 года назад +1

    Я слышал есть способ с помощью кода переносить изменения с одной сцены на другую покажешь?
    Например я сделал интерфейс на 1 уровне, а мне нужен на всех 30 уровнях, мне же придется копировать его и вставлять в каждую сцену и потом ещё ссылки в инспекторе расставлять?

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      Для этого и нужны префабы) В видео про LOD Group я про них немного рассказал. Ты можешь создать один объект, вносить в него изменения и они применятся на всех сценах сразу
      Про них тоже по плану есть ролик. Грамотная работа с префабами - тоже отдельный вид искусства)
      Ссылки в инспекторе обычно я прокидываю только в префабах внутри этого самого префаба. Чтобы я его в любой момент закинул на сцену и не нужно было со сцены в него что-то прокинуть через инспектор или наоборот

  • @yummybunny7351
    @yummybunny7351 2 года назад +1

    На 5:35 можно где-то код найти на гитхабе?
    Спасибо за видео.

    • @NightTrainCode
      @NightTrainCode  2 года назад +2

      На здоровье)
      Да, держи
      github.com/MeeXaSiK/MonoCache/blob/main/Code/System/NightSugar.cs

  • @armatyrian1517
    @armatyrian1517 2 года назад

    оно живое

  • @robertbaran1216
    @robertbaran1216 Год назад +2

    Люююто недооценен. Очень крутой контент по юнити и шарпу, особенно для тех, кто знания расширяет, подтипа меня. Базу взял у Сакутина, развиваю знания с тобой, спасибо за контент, бро 🔥

    • @NightTrainCode
      @NightTrainCode  Год назад

      На здоровье, спасибо большое)

  • @bishopcupoison4550
    @bishopcupoison4550 11 месяцев назад +1

    Ля ты батя!

  • @mrdungeonmaster8553
    @mrdungeonmaster8553 Год назад

    Привет, попробовал сделать Instantiate не для GameObject, а для MonoBehavoir, как у тебя показано в первом же примере. Unity 2021.2.16f1, InvalidCastException.

    • @NightTrainCode
      @NightTrainCode  Год назад

      А какой смысл в том, чтобы указывать MonoBehaviour?)

    • @mrdungeonmaster8553
      @mrdungeonmaster8553 Год назад

      @@NightTrainCode А разве GetComponent работает для еще каких-то типов? Вернее, как он отработает, если не будет явного подключения к GameObject другого типа? MonoBehavior же через инспектор подключаем к GameObject. Логично, что это не просто MonoBehavior, а дочерний класс от него. Мне просто не доводилось видеть ни в каких видео или на форумах, чтобы GetComponent использовали не для получения MonoBehavior скрипта

  • @dimahorbik1163
    @dimahorbik1163 Год назад

    Чувак если в райдере это всё само делается при форматировании кода

  • @MrVoronaExtra
    @MrVoronaExtra 2 года назад

    Лучший просто

  • @qw1ntwhyu701
    @qw1ntwhyu701 2 года назад

    Скидки в Asset store - круто, но купить в нём ассеты нельзя :с

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Да, точно, грустно немного. Рад, что успел купить всё ещё полгода назад для своей игры

  • @newGames_0
    @newGames_0 2 года назад +1

    Ещё фишек

  • @DmitryTrump
    @DmitryTrump 2 года назад

    Привет. Ты даешь частные уроки ?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Привет, я всё могу)
      Напиши вк (cs_exe) или тг (meexasik)

  • @lukabrykaylo
    @lukabrykaylo 2 года назад

    Какие меры можно предпринять, если при переходе из одной сцены в другую, сцена на которую я переходу, затемняется?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      У меня такое было, а в билде всё ок. Вроде с обновлением версию юнити ушло
      Может быть у тебя в коде в статике проблема, но маловероятно

    • @lukabrykaylo
      @lukabrykaylo 2 года назад

      @@NightTrainCode в билде у меня также затемняется. А старые проекти без проблем открываются с обновлением юнити?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@lukabrykaylo На работе один проект бывает через две-три версии новые проходит и всё хорошо)
      Может свет не запечён или автогенегарция стоит

    • @lukabrykaylo
      @lukabrykaylo 2 года назад

      @@NightTrainCode не помогла новая версия.. а где посмотреть автогенерацию?

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@lukabrykaylo Rendering -> Lighting

  • @KiZhuGames
    @KiZhuGames Год назад

    Там ECS уже не бета и теперь ничего не понятно, я бы посмотрел видосик для чайников

  • @dilemmafixe9340
    @dilemmafixe9340 Год назад

    Привет 13:17 пытаюсь повторить , но ничего не понимаю не работает , повесил наследников на кубы колайдеры есть , на тригерах ис тригер есть , двигаю их и так и сяк , но ответа ноль . Код польностью идентичен . Помогите кто может !

    • @NightTrainCode
      @NightTrainCode  Год назад

      Ты добавил Rigidbody на движущийся объект? Вроде можно isKinematic включить, но лишь бы RB был

  • @yummybunny7351
    @yummybunny7351 2 года назад

    А на 12:30 есть код? В гитхабе не нашел

    • @NightTrainCode
      @NightTrainCode  2 года назад

      Не-а, пока не выкладывал. Если ты про атрибут "as", то да. Там Modular System, которую я ещё не отполировал для гитхаба, чтобы выложить)

    • @yummybunny7351
      @yummybunny7351 2 года назад

      ​@@NightTrainCode в принципе хотел глянуть на весь namespace Development.Glbal....

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      @@yummybunny7351 Ой, там у меня миллион скриптов)
      Много чего оттуда уже на гитхаб есть. В основном мои системки там и шорт-каты

  • @moranyt8299
    @moranyt8299 2 года назад

    Вообще, фишки топовые, но как я заметил, присутствует кучу лямбда выражений и других способов быстро сократить код. Проблема такого применения в том, что это может быть не читаемо как минимум для новичка и как максимум для хорошего мидла, при условии что этих выражений чрезмерно много и они только путают. Я не говорю что стоит от них отказываться, но и пользоваться ими стоит с умом, чтобы посмотрев на условный код, было сразу понятно что здесь имеется ввиду. За примерами далеко ходить не нужно, стоит попробовать вместо человеческого if else переделать это в лямбду, уже придется остановиться на время чтобы понять что где да как. Так что, по моему скромному, я рекомендую использовать эти выражения только тогда, когда вы сами или ваша команда без проблем сможет понять что вы имели ввиду. Пасыба за видос =)

    • @NightTrainCode
      @NightTrainCode  2 года назад +1

      На здоровье)
      Ну, прежде, чем читать код, нужно хорошо знать язык программирования. Ту же аналогию можно и с обычными языками провести
      Спасибо за коммент)

    • @argon9113
      @argon9113 2 года назад +2

      приучать к нормальному коду, а то так можно всю жизнь избегать чего-то сложнее 1+1

    • @NightTrainCode
      @NightTrainCode  2 года назад

      @@argon9113 Именно

  • @Cyb11893
    @Cyb11893 2 года назад

    А почему не на анрил. Сейчас все туда переходят

  • @mypaxa003
    @mypaxa003 2 года назад

    Мда. Продвинутый...

  • @Alukard284
    @Alukard284 7 месяцев назад

    Рощщ