Вы зашли сюда чтобы получить полезную информацию или чтобы обвинять человека, который ее преподает в "неподобающем" внешнем виде? Лично мне все равно как и во что одет человек, вам бы посоветовал тоже перестать обращать на это внимание. И не надо, пожалуйста, пытаться аргументировать против тезисами по типу "все знают, кто не жил в дупле дерева": если вам нечего сказать что-то более внятное, чем "так принято", то и не стоило оставлять свое очень "важное" замечание.
@dmitriypermyakov5402 Ну вот зачем это все? На такие каналы обычно приходят люди, которым интересно узнавать новое, учиться... автор душу вкладывает в свое творчество, делится своим опытом... Можно ведь и так сказать: "Глупые комменты могут оставлять или глупцы, или ущербы, жаждущие самоутвердиться за счет опускания других, или обделенный вниманием человек, готовый на все, лишь бы кто-то его заметил. Кто ты, Дмитрий Пермяков?". По поводу головного убора. За исключением некоторых специфических сообществ, наличие/отсутствие головного убора не является обязательным. Если кто-то привык к другому - пожалуйста, но вовсе нет необходимости в том, чтобы проецировать свои комплексы на других людей, пытаясь "скорректировать" их поведение примитивными манипуляциями, вроде той, что пытается вменить чувство вины. Это как-то низко... Далее. Чел у себя дома (на своей территории, не на твоей) находится и имеет полное право хоть кастрюлю на голову одеть. Его право и его дело. Кепка вполне себе вписывается в обстановку и дизайн окружения, который, кстати, продуман и стилизован. Ну и еще, хочешь умничать - с пунктуацией подружись, а то запятые куда-то потерял 🤔
Я бы ещё посоветовал сейчас (если ты новичок и не шаришь) попросить у GPT написать логику интерфейса и попробовать засунуть в передаваемое значение, допустим - currentPlayerHealth; и понять как оно связано. Пару манимуляций и всё станет понятно
Спасибо за очередное полезное видео!) Хотя и так знаю про интерфейсы. Сейчас грызу addressable....... Вообще, такое ощущение, что документации пишут для того, чтобы отбить у людей желание заниматься чем-либо. Вот без видосов, изучая чисто документацию Unity, я бы уже бросил это дело)
Черт.... А у меня не пашет:( у меня есть класс, который не находится на сцене и поиск по сцене не находит его :( Хотя метод FindObjectsOfType перебирает все мои объекты на сцене, которых может быть целая туча и все равно не находит класс, реализующий интерфейс, лежащий в корне проекта:(((( в чем может быть проблема? Да и вообще, Майкрософт (создатели С#) косячеры. Не продумали множественное наследование. Приходится теперь каким-то интерфейсом пользоваться.... Еще и поля туда воткнуть нельзя блин... О. Прикольно, а свойства можно...
Вообще лучше не пользоваться Fiind objects of of Type, если у тебя целая туча объектов, в таком случае можно по имени искать если ссылку по какой-то причине по-другому не сделать. И ты написал что у тебя есть класс который не находится на сцене и поиск по сцене не находит его, тут всё логично если классно нет на сцене он его и не найдёт.
какое же простое и от этого, крутое объяснение!!! Ты лучший преподаватель! Спасибо за урок! жаль что так мало уроков. Директор Михаил можно пожалуйста, generic class, паттерны, пул объектов. Надеюсь в будущем у тебя появится платный курс (много денег нет) и закрытый дискорд для учеников, где ты будешь передавать все знания по наследству таким как я! 🙃
Хм... А если этому классу не нужен этот метод - то его можно оставлять пустым? Крутяк! Так в принципе я могу зафигачить все в один интерфейс и не реализовывать ненужные мне методы! Прикольно! Спасибо за хелп!
например: У тебя есть интерфейс IWeapon, его реализуют классы Pistol, Rifle, Shotgun. Теперь ты в своем плеере определяешь в классе пользователя поле IWeapon currentWeapon и передаешь туда просто твое оружие из списка. Это разрывает жесткую зависимость и делает код расширяемым, если ты захочешь в дальнейшем добавить еще какое-нибудь оружие - тебе нужно будет просто добавить оружие и реализовать в нем интерфейс IWeapon и оно будет работать без дополнительных танцев с бубном.
Гайс, делать игру без интерфейсов = СМЕРД. Они ОЧЕНЬ приятные+полезные, хз как без них жить (с костылями ходить). Смотри, в моем хороре есть электрические устройства. Лампы, радио, телевизоры и прочие штуки. У каждого электрического устройства есть своя логики работы, лампам нужно отключить свет и отключить материал лампочки, радио включает аудиоКлип и шейдер для постветки работы. То есть, у каждого такого электрического устройство есть свой собственный скрипт (так как у них разная логика включения и выключения). Я хочу, чтобы мой призрак активировал все возможные электрические устройства, когда проходил мимо них. Без интерфейсов и наследования это делается крайне печальным образом, типа: GetComponent().UseTV(); GetComponent().UseRadio(); GetComponent().UseLight(); То есть, в скрипте монстра или игрока или любой другой штуки мне необходимо прописывать код выше, верно? А если я решу добавить еще одно электрическое устройство, то мне придется добавлять еще одну строчку в каждый скрипт, который хочет использовать электрическое устройства. А если у меня 20 устройств? Придется заниматься дрочиловом, а оно крайне демотивирует. А вот теперь смотри как эта задача решается с помощью интерфейса. 0. Создаем интерфейс с 1 строчкой кода "void Interact();" 1. Наше электрическое устройство (например радио) наследуется от интерфейса "IElectroItemUse" и реализует метод интерфейса вот так public void Interact() { UseRadio(); } Скрипт телевизора же будет реализовывать интерфейс слегка по другому public void Interact() { UseTV(); } 3. Теперь игрок, монстр и кто-угодно может выполнить метод активации электрического устройства через строку gameObject.GetComponent().Interact(); private void OnTriggerEnter(Collider other) {
if (other.CompareTag("Electro")) { other.GetComponent().Interact(); } } А вот таким образом призрак ходит по дому и если он цепляет коллайдером какое-либо устройство, то оно активируется. Интерфейс это крайне простой способ для ЛЮБЫХ скриптов получить доступ сразу к ТЫСЯЧИ или сотне скриптов, что реализуют интерфейс.
ну так можно же без интерфейса обратиться и без всяких лишних проверок за место этого и интерфейса. так вообще хз кто обращается к каждому TV, Radio и прочее...разве прям вообще новички GetComponent().UseTV(); GetComponent().UseRadio(); GetComponent().UseLight(); когда можно вот так if(other.CompareTag("Interactive")) other.GetComponent().Use(); без лишних созданий интерфейсов и массивов, которые лишний раз нагружают работу. ещё и быстрее будет...
Привет, сделай, пожалуйста, ролик по созданию интерфейса игры. Как правильно вызывать его, переключать и правильно всё это реализовать. Спасибо)
В головном уборе в помещении могут находится или женщины или священнослужители или мусульмане. Хто ты, маска? 🤔
Это кто сказал?
@@GameDirectorMichael все знают, кто не жил в дупле дерева - "Почему существует запрет на ношение шапки в помещении?"
Вы зашли сюда чтобы получить полезную информацию или чтобы обвинять человека, который ее преподает в "неподобающем" внешнем виде?
Лично мне все равно как и во что одет человек, вам бы посоветовал тоже перестать обращать на это внимание. И не надо, пожалуйста, пытаться аргументировать против тезисами по типу "все знают, кто не жил в дупле дерева": если вам нечего сказать что-то более внятное, чем "так принято", то и не стоило оставлять свое очень "важное" замечание.
@@jojofag793 так ведь и я полезную информацию озвучил. Стыдно, дожить до бороды и не знать элементарных вещей.
@dmitriypermyakov5402 Ну вот зачем это все? На такие каналы обычно приходят люди, которым интересно узнавать новое, учиться... автор душу вкладывает в свое творчество, делится своим опытом...
Можно ведь и так сказать: "Глупые комменты могут оставлять или глупцы, или ущербы, жаждущие самоутвердиться за счет опускания других, или обделенный вниманием человек, готовый на все, лишь бы кто-то его заметил. Кто ты, Дмитрий Пермяков?".
По поводу головного убора. За исключением некоторых специфических сообществ, наличие/отсутствие головного убора не является обязательным. Если кто-то привык к другому - пожалуйста, но вовсе нет необходимости в том, чтобы проецировать свои комплексы на других людей, пытаясь "скорректировать" их поведение примитивными манипуляциями, вроде той, что пытается вменить чувство вины. Это как-то низко...
Далее. Чел у себя дома (на своей территории, не на твоей) находится и имеет полное право хоть кастрюлю на голову одеть. Его право и его дело.
Кепка вполне себе вписывается в обстановку и дизайн окружения, который, кстати, продуман и стилизован.
Ну и еще, хочешь умничать - с пунктуацией подружись, а то запятые куда-то потерял 🤔
Почему я не нашел этот канал раньше, вместо Гошей Дударей и т.п
раньше я думал что интерфейсы бесполезны на сейчас понял это реально полезная штука чем то похоже на абстрактные класс
Реализация членов, это сильно
Интерпейсы
Спасибо
Я бы ещё посоветовал сейчас (если ты новичок и не шаришь) попросить у GPT написать логику интерфейса и попробовать засунуть в передаваемое значение, допустим - currentPlayerHealth; и понять как оно связано.
Пару манимуляций и всё станет понятно
Спасибо за очередное полезное видео!) Хотя и так знаю про интерфейсы. Сейчас грызу addressable....... Вообще, такое ощущение, что документации пишут для того, чтобы отбить у людей желание заниматься чем-либо. Вот без видосов, изучая чисто документацию Unity, я бы уже бросил это дело)
Адресаблес Крутая штука, удачи) с обучением)
понял, как юзать?
@@squitani частично да
@@АнтонЕлумеев как переключать сцену с помощью addressables , знаешь?
Отличный урок! Спасибо большое!
Черт.... А у меня не пашет:( у меня есть класс, который не находится на сцене и поиск по сцене не находит его :( Хотя метод FindObjectsOfType перебирает все мои объекты на сцене, которых может быть целая туча и все равно не находит класс, реализующий интерфейс, лежащий в корне проекта:(((( в чем может быть проблема? Да и вообще, Майкрософт (создатели С#) косячеры. Не продумали множественное наследование. Приходится теперь каким-то интерфейсом пользоваться.... Еще и поля туда воткнуть нельзя блин... О. Прикольно, а свойства можно...
Вообще лучше не пользоваться Fiind objects of of Type, если у тебя целая туча объектов, в таком случае можно по имени искать если ссылку по какой-то причине по-другому не сделать. И ты написал что у тебя есть класс который не находится на сцене и поиск по сцене не находит его, тут всё логично если классно нет на сцене он его и не найдёт.
какое же простое и от этого, крутое объяснение!!! Ты лучший преподаватель! Спасибо за урок! жаль что так мало уроков. Директор Михаил можно пожалуйста, generic class, паттерны, пул объектов. Надеюсь в будущем у тебя появится платный курс (много денег нет) и закрытый дискорд для учеников, где ты будешь передавать все знания по наследству таким как я! 🙃
Спасибо)
Хм... А если этому классу не нужен этот метод - то его можно оставлять пустым? Крутяк! Так в принципе я могу зафигачить все в один интерфейс и не реализовывать ненужные мне методы! Прикольно! Спасибо за хелп!
Да то есть он обязательно должен быть в классе но может быть абсолютно пустым
всё равно ничего не понятно...
в чём смысл интерфейсов? я просто не понимаю, что они дают
Доступ к методу не через класс, а через интерфейс. Это упрощает работу с разными классами, то есть в 2 классах разных может быть 1 интерфейс.
например: У тебя есть интерфейс IWeapon, его реализуют классы Pistol, Rifle, Shotgun. Теперь ты в своем плеере определяешь в классе пользователя поле IWeapon currentWeapon и передаешь туда просто твое оружие из списка. Это разрывает жесткую зависимость и делает код расширяемым, если ты захочешь в дальнейшем добавить еще какое-нибудь оружие - тебе нужно будет просто добавить оружие и реализовать в нем интерфейс IWeapon и оно будет работать без дополнительных танцев с бубном.
Гайс, делать игру без интерфейсов = СМЕРД. Они ОЧЕНЬ приятные+полезные, хз как без них жить (с костылями ходить).
Смотри, в моем хороре есть электрические устройства. Лампы, радио, телевизоры и прочие штуки.
У каждого электрического устройства есть своя логики работы, лампам нужно отключить свет и отключить материал лампочки, радио включает аудиоКлип и шейдер для постветки работы.
То есть, у каждого такого электрического устройство есть свой собственный скрипт (так как у них разная логика включения и выключения).
Я хочу, чтобы мой призрак активировал все возможные электрические устройства, когда проходил мимо них.
Без интерфейсов и наследования это делается крайне печальным образом, типа:
GetComponent().UseTV();
GetComponent().UseRadio();
GetComponent().UseLight();
То есть, в скрипте монстра или игрока или любой другой штуки мне необходимо прописывать код выше, верно? А если я решу добавить еще одно электрическое устройство, то мне придется добавлять еще одну строчку в каждый скрипт, который хочет использовать электрическое устройства. А если у меня 20 устройств? Придется заниматься дрочиловом, а оно крайне демотивирует.
А вот теперь смотри как эта задача решается с помощью интерфейса.
0. Создаем интерфейс с 1 строчкой кода "void Interact();"
1. Наше электрическое устройство (например радио) наследуется от интерфейса "IElectroItemUse" и реализует метод интерфейса вот так
public void Interact()
{
UseRadio();
}
Скрипт телевизора же будет реализовывать интерфейс слегка по другому
public void Interact()
{
UseTV();
}
3. Теперь игрок, монстр и кто-угодно может выполнить метод активации электрического устройства через строку
gameObject.GetComponent().Interact();
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Electro"))
{
other.GetComponent().Interact();
}
}
А вот таким образом призрак ходит по дому и если он цепляет коллайдером какое-либо устройство, то оно активируется.
Интерфейс это крайне простой способ для ЛЮБЫХ скриптов получить доступ сразу к ТЫСЯЧИ или сотне скриптов, что реализуют интерфейс.
Все так и есть
ну так можно же без интерфейса обратиться и без всяких лишних проверок
за место этого и интерфейса. так вообще хз кто обращается к каждому TV, Radio и прочее...разве прям вообще новички
GetComponent().UseTV();
GetComponent().UseRadio();
GetComponent().UseLight();
когда можно вот так
if(other.CompareTag("Interactive"))
other.GetComponent().Use();
без лишних созданий интерфейсов и массивов, которые лишний раз нагружают работу. ещё и быстрее будет...
спасибо за пример
@@johnleo7 рад!
@@gaymdev6144дружище, а почему просто не подписаться на все эти методы