3 дня над этим голову ломал, а оказалось всё так просто) Спасибо)
@Andredy892 жыл бұрын
в который раз даже при запросах на англ.яз, попадаю на твой канал. Значит подписка. Спасибо, годный контент.
@user-kk5ur4eq1m5 ай бұрын
Ахахахах, вконце посмеялся от души. Ооо, можно синглтон не прописывать, персонаж синглтон, все синглтон😂 Отличная подача, видно что человек понимает и разбирается в том, о чем говорит! Уже давно подписан
@yelstofs61179 ай бұрын
Благодарю! Очень доходчево и понятно, кайф)
@k_ochegar3 жыл бұрын
Годный контент, меньше воды, больше дела. Конечно не хватает наглядности работы скриптов для полного понимания. Я как новичок, так вообще тук-тук, и сложно воспринимать: Что? Зачем? Почему? Надеюсь со временем придет). Но все равно респект 👍 и буду следить 🔔🙂
@gamedevlavka3 жыл бұрын
Наглядность работы скриптов я делаю через логи) не помню, есть в этом видео или нет, но в основном через логи. Этого достаточно, чтобы понять, что все работает и минимум времени, чтобы показать ту самую наглядность)
@Jicefrost2 жыл бұрын
Хорошее видео. спасибо!
@yflow533713 күн бұрын
Спасибо, уже понятнее. Удобно когда доступ в любой точке проекта, жаль что нежелательная схема. Как бы это сделать чтобы не нужно было по полям всё тягать и без сложных доступов через десять ветвлений, неужели нет возможности более удобно работать. Еще немножко не по теме, вопрос, как сделать формат фигурных скобок чтобы они сразу размещались в таком стиле, когда открытая стоит сразу в строке, а не внизу?
@jasim1798 Жыл бұрын
отличный контент, рад что нашел активный канал) будет ли видео на тему "как не использовать монобех"? а то везде слышу, что монобехов должно быть мало и тд., как новичок не очень понимаю о чем тут речь и почему, а если и не использовать, то как тогда
@gamedevlavka Жыл бұрын
Ответил на последнем стриме, видео будет когда-то)
@redfox7193 Жыл бұрын
Не наследовать класс от MonoBehaviuor?
@jasim1798 Жыл бұрын
@@redfox7193 уже не актуально
@AKasatikov Жыл бұрын
Для Bank нужно сделать private конструктор, без него мы можем создавать экземпляры банка.
@greedy406326 күн бұрын
я тот самый начинающий который узнал про синглтоны и хочет все через них делать) поэтому немного не хватило пояснения концовки - я понимаю почему много синглтонов это не очень хорошо, но для чего тогда этот паттерн, когда стоит использовать именно его? условно если в моей игре заведомо 1 игрок нормально ли его сделать синглтоном?
@gamedevlavka17 күн бұрын
Синглтон неплохо подходит под задачу интеграции наружних сервисов: синглтон рекламы, платёжки, стим, аналитика и др. Всё остальное - на свое усмотрение, но игрок например - это, если вдаваться в абстракцию, персонаж с управлением. Поэтому обычно, его не делают синглтоном, т.к. все может поменяться. Но если тебе не страшно переделывать огромный кусок, если что, или ты вовсе не собираешься этого делать - то пользуйся, пожалуйста)
@annastudenikova3765 ай бұрын
Спасибо за урок. Подскажите почему класс c названием "GameManager" - это не очень хорошо? Unity скрипт с именем "GameManager" отображает специальной иконкой - шестеренкой. То есть разработчики Unity, по всей видимости считают, что такой класс должен быть в проекте.
@gamedevlavka5 ай бұрын
Т.к. в юнити низкий порог входа, то многие начинающие создают GameManager. Видимо юнити сделали эту шестеренку для них (честно говоря, ума не приложу, для чего). GameManager непонятно что делает, поэтому это плохо. Что он менеджерит? Игру? В каком смысле? Загрузка сцен? Тогда почему не SceneManager? Уровень? То есть LevelManager? Вообще менеджер непонятно что делает. Что значит менеджерить? Вот поэтому классы со словом Managet не приветствуются. Потому что непонятно что они делать должны
@YasnaKo3 жыл бұрын
А можете поподробнее рассказать, почему плохо этот паттерн пихать в player, bank и всё остальное? Вот много где ругаются на него, но почему, никто не объясняет. Пысы. Спасибо за уроки)
@gamedevlavka3 жыл бұрын
Как минимум два аргумента: 1. Это может стать бесконтрольным. Ваш проект может превратиться в месиво синглтонов, потому что "это же удобно, и у меня никогда не будет больше одного экземпляра этого класса". Бесконтрольное использование синглтона может вылиться в проблему номер 2. 2. Внезапно нужно все-таки создать еще один экземпляр чего-то, что было синглтоном. Например игрок. Вдруг поступило предложение делать локальный мультиплеер. И всё, весь проект накрывается медным тазом, потому что переделывать с синглтона игрока будет долго, мучительно и больно.
@YasnaKo3 жыл бұрын
@@gamedevlavka а по каким критериям определить подходящие и неподходящие для паттерна случаи?
@gamedevlavka3 жыл бұрын
Всегда нужно думать, как обойтись без него, это лучший вариант. Однако, его можно использовать в модулях, например: аналитика, класс самой игры Game (это из урока по архитектуре, который выйдет завтра), управление рекламой в мобильном приложении, управление внутреигровыми покупками - то, что запускается и инициализируется единожды и существует на протяжении всей игровой сессии.
@YasnaKo3 жыл бұрын
@@gamedevlavka спасибо за ответы! 🙏
@karimkimsanbaev793210 ай бұрын
Не согласен с автором видео. Объяснение не очень подробное про то, почему плохо. Но не думаю, что смогу лучше. Классический пример, перезагрузка игры без выключения игры (накатываем прогресс другого игрока на устройство, обновляем вход через социальную сеть, игрок просто хочет все начать сначала). С синглотнами получается боль, потому что нужно вручную контролировать, что все данные очищаются. Либо писать, instance =null, instance = new Bank. Так же создавая синглтоны, мы говорим, что они создадуться лениво. Лениво - это когда они создаются не на старте игры, а при первом использовании (когда вызовем Bank.Instance). А теперь представьте, что синглтонам нужны еще синглтоны внутри, а тем тоже нужны синглтоны, еще и еще, вложенность синглтонов. И все они инициализируются в свои какие-то моменты времени. Вы просыпаетесь внезапно утром и понимаете, что когда в середине боя вы подбираете монетку - происходит дикий пролаг синглтонов, потом вы убиваете противника - еще пролаг. И вы не можете явно контролировать когда создавать синглтоны и какие классы их используют. А теперь игрок нажимает "Сброс прогресса", зависимости уничтожились не в том порядке, в котором создавались - произошел null reference или мы уничтожили не старый синглтон, а новый... мы даже не можем понять "а тот ли это синглтон". Да мы не можем даже понять какие синглтоны использует класс, не посмотрев внимательно на 200 строк и не зацепив глазом все методы и все строчки с SomeSingleton.Instance. А если в класс добавляем новый синглон - нужно не забыть его прокинуть в очистку. Вы начинаете разбираться и понимаете, что вы не можете контролировать ваш код. Не можете контролировать зависимости. Вы плачете. P.s. Синглтоны это не плохо, имхо, не нужно при любом раскладе их не использовать. Нужно попробовать, понять где можно и где нельзя. Синглтон понятный и простой паттерн, я видел большие проекты с синглтонами и все было в порядке. Вопрос в применимости и умению готовить
@user-ml5tn8qn8j Жыл бұрын
Хотелось бы видео по паттерну декоратор и фабрика
@gamedevlavka Жыл бұрын
Будет, записал в план)
@user-ml5tn8qn8j Жыл бұрын
@@gamedevlavka потрясающе) ждём
@be_Cycling3 жыл бұрын
А если создать синглтон с ссылками на экземляры других классов, этакий хаб, чем это грозит?
@gamedevlavka3 жыл бұрын
Это вопрос архитектуры. Один синглтон не может содержать абсолютно все ссылки, это неудобно и неправильно. Смотри уроки по архитектуре, там я буду об этом говорить
@be_Cycling3 жыл бұрын
@@gamedevlavka ну не все, а самые часто вызываемые, уроки конечно посмотрю. Давно толковых каналов не попадалось
@artemignat77643 жыл бұрын
Мне кажется, что в awake ты его создаешь и сразу удаляешь. Запехни destroy в else if
@1deathpony1123 жыл бұрын
Я тож так думаю, но подумал, что это я чего-то не шарю .-.
@def61413 жыл бұрын
Ключевое слово return разве не прерывает метод?
@artemignat77643 жыл бұрын
@@def6141 точно!)
@Kawabatushka Жыл бұрын
@@def6141 так вообще можно писать? Это считается нормой? Или лучше иф-элз юзать?
@younggd Жыл бұрын
@@Kawabatushka конечно так можно писать) в данном случае иф-элз лишняя проверка.
@defix_gamedev Жыл бұрын
А можно использовать синглтон например для системы оповещений?
@Fenix72rus3 жыл бұрын
Про первый пример. У GameManager есть статическое поле Instance. Разве при обращении к нему из других скриптов не происходит пробег по всем объектам на сцене как FindGameObject? Если да, то это же скажется на проиводительности
@gamedevlavka3 жыл бұрын
Нет, так не происходит. Статическое поле - это переменная принадлежащая классу, а не его объекту, только и всего. Там подобных действий под капотом не происходит, и на производительность не влияет.
@Fenix72rus3 жыл бұрын
@@gamedevlavka Спасибо! Я ошибался.
@4rtochka2 жыл бұрын
А если создаю пустые обьекты , и называю в соответствии с тем чем они управляют, Например обьект LootBoxSystem содержит функции с алгоритмами шанса спавна ценного предмета, эна этот обьект ссылается кнопка, которая по нажатию заспавнит рандомгый обьект с заданым шансом, так допускается делать? Просто создавать системы с функциями на сцене и к ним привязывать кнопки и другие события ?
@gamedevlavka2 жыл бұрын
В идеальном мире таких штук должно быть минимальное количество)
@tomasgammister57763 жыл бұрын
а как вы на лету меняете регистр символов? ))
@gamedevlavka3 жыл бұрын
Если я правильно понял вопрос, то это интеллектуальный набор редактора кода)
@kingofbattleonline2 жыл бұрын
Я как опытный программист хочу сказать что это максимально не правильная реализация паттерна. Но есть два нюанса: 1) Не хочу обижать автора 2) Не хочу чтобы некоторые полезные знания передавались другим людям. Так как будет появляться больше конкуренции в Google Play
@Tornado-ln7fq Жыл бұрын
Эм,как я и говорил уже в одном комментарии,подход ооп,это не панацея,это нужно четко различать ,если это есть,это не значит что это нужно везде пихать,сразу вспоминаю 9ю роту,где учили обращению пластичной взрывчаткой.Как он говорил,не лепи куда попало ,так и тут,если твой функционал это 80 строк когда,и больше это некуда не пойдет,то не лепи сюда ооп)),и сразу проблем станет меньше)).А да, KeyCode.B это больше не работает)
@davidhops39522 жыл бұрын
Не хочу как то обидеть, но очень странный стиль кода. Никогда такого не видел. Визуально больно читать просто
@squidward5722 жыл бұрын
бесполезное видео. Подача уровня межпространственного тв из рика и морти: ой тут забыл, ой еще вот это, можно же хотя б немного заморочиться с монтажем. Сама тема не раскрыта: синглтон плохо незя, а почему, а что лучше? Единственное, что раскрыто, это проверка на дубликат, но это какой-то супер нераспространенный случай, как минимум, для соло разработчиков, возможно, если в средней\большой команде есть аутисты, то это будет полезно, но в целом видео бесполезное. Механика инстансов не обьяснена, а то если зритель не знает про нее, у него тогда еще вопрос возникнет. Казалось бы такие классные темы видео и так мало просмотров и подписчиков, очевидно из-за бездарного подхода. Не хочу показаться банальным ненавистником и желаю более серьезно подходить к качеству материала, от этого и зрители и канал будут в выйгрыше.