Скрипт двери в Unity - Универсальное открывание дверей и выдвижных ящиков /Как создать игру [Урок 8]

  Рет қаралды 14,755

Владимир СВЕТ Игродельский

Владимир СВЕТ Игродельский

3 жыл бұрын

В этом уроке показываю свой универсальный скрипт открывания разных типов дверей. Данное решение подойдёт для распашных и раздвижных дверей, а также для выдвижных ящиков, сундуков и других подобных интерактивных объектов.
Новый курс от Unity3dSchool : unity3dschool.ru/unity-bazovy...
Мои игры в Steam:
store.steampowered.com/develo...
Мои игры в GooglePlay:
play.google.com/store/apps/de...
Группа во ВКОНТАКТЕ: igrodelsky
Личка во ВКОНТАКТЕ: dostalition
Личка в Телеграмм: t.me/VLADIMIR_IGRODELSKY
Сайт: dostalitios.wix.com/igrodelsky
Почта: dostalitios@gmail.com
(игродельский, igrodelsky, как создать игру, юнити, unity, 2021)

Пікірлер: 157
@arcedii
@arcedii 2 жыл бұрын
красвачик универсальный серипт заменяющий 3-4 урока спасибо
@abikfundos1174
@abikfundos1174 2 жыл бұрын
Спасибо большое! Очень понятно и классно!
@stalkersorner6905
@stalkersorner6905 2 жыл бұрын
Огромное вам спасибо этого мне и не хватало мне нужно было сделать ящики и двери в своей игре а тут сразу две проблемы за раз решил и насчет вашего мнения о том что вы скидываете скрипт в описание или на гитхаб полностью с вами солидарен веть просто копирую и вставляя у тебя будет лишь иллюзия того что ты что то знаешь а на самом деле без видео ты не чего не сделаешь так что спасибо вам за этот урок научился много чему новому
@BORNIS
@BORNIS 2 жыл бұрын
10 из 10, спасибо))
@user-um5pc4wj6o
@user-um5pc4wj6o 2 жыл бұрын
очень круто молодец
@kazyha
@kazyha 2 ай бұрын
Самый крутой скрипт! Пасиба огромное
@IsgameChannel
@IsgameChannel 2 жыл бұрын
Огонь видос! Спасибище тебе огромное! Два дня на эти ссаные двери убил( Теперь знаю кому писать буду если в тупик упрусь))
@max_err6047
@max_err6047 Жыл бұрын
Большая работа, молодец. Жаль лайков мало.
@kok-andrey143
@kok-andrey143 Жыл бұрын
надо было повторяющийся код в отдельный метод поместить. очень полезный урок!
@DOOM2_0GUY
@DOOM2_0GUY 9 ай бұрын
@user-db4su8rx3b
@user-db4su8rx3b 3 жыл бұрын
Вау мне как раз сейчас нужна дверь👍👍👍
@Pro100lame
@Pro100lame 3 жыл бұрын
Запилил дверь?)))))
@user-db4su8rx3b
@user-db4su8rx3b 3 жыл бұрын
@@Pro100lame пока нет но как только за юньку сяду, запилю
@Pro100lame
@Pro100lame 3 жыл бұрын
@@user-db4su8rx3b Разве не каждый день практикуешься?
@user-db4su8rx3b
@user-db4su8rx3b 3 жыл бұрын
@@Pro100lame каждый, но щас я занят другими делами
@alex75494
@alex75494 3 жыл бұрын
спасибо!
@Kostyan_Sigaev
@Kostyan_Sigaev 2 жыл бұрын
Привет. Можешь сделать урок по взаимодействию игрока с предметами, как у тебя в этом видео, а то я чёт запарился уже, мои скрипты не пашут, а многие, что на ютубе нашел, не хотят работать на 5.6.7f1...
@igrodelsky
@igrodelsky 2 жыл бұрын
Здравствуй. Нет, пока в планах другие уроки.
@user-eu5uc9iw3x
@user-eu5uc9iw3x Жыл бұрын
Добрый день, можете скинуть звуки двери? Искал в интернете, нормальные звуки не нашёл.
@DiscrepancyDetectives
@DiscrepancyDetectives 2 жыл бұрын
Здравствуйте, как мне решить такую проблему? 'Transform' does not contain a definition for 'localEulerAngels' and no accessible extension method 'localEulerAngels' accepting a first argument of type 'Transform' could be found (are you missing a using directive or an assembly reference?)
@Kostyan_Sigaev
@Kostyan_Sigaev 2 жыл бұрын
У тебя опечатка, нужно не Angels, а Angles, а то у тебя ангелы вместо углов выходят
@acidkeat8067
@acidkeat8067 Жыл бұрын
Большое спасибо за работу! К сожалению, по непонятной мне причине, дверь пытается закрыться в сторону, хотя должна закрываться вверх по Y В коде всё верно, буду видимо позже debug прописывать Юнити 2022.2.10 Если выставлять по X, то работает нормально, если Y или Z, то пытается закрыться куда-то в сторону по X локальному
@acidkeat8067
@acidkeat8067 Жыл бұрын
При вращении она просто не закрывается потом, хотя тэг остаётся
@Uznewstv24
@Uznewstv24 3 жыл бұрын
Здравствуйте ! создаю игру шутар от первого лица ! покажите как можно менять оружии во времи игры )
@igrodelsky
@igrodelsky 3 жыл бұрын
Здравия. Самый простой способ - это тупо выключить текущее оружие и включить выбранное. Более правильный вариант - через анимацию. Типа руки с оружием опускаются вниз, там происходит смена и потом подъём обратно.
@v_kasilov
@v_kasilov Жыл бұрын
Добрый день! А как сделать так, чтобы двери ещё открывались правильно если ручка с левой стороны?
@igrodelsky
@igrodelsky Жыл бұрын
Здравия. Другой угол поставить.
@nemesis9274
@nemesis9274 2 жыл бұрын
Здравствуйте, не мог бы кто ни будь отправить этот скрипт, просто у меня не хватает времени на его писание, а хочется.
@allelf5107
@allelf5107 2 жыл бұрын
Тут весь код автора, но, у меня на закрытие двери встаёт дверь наместо очень уж резко, может в коде что то упустил, а может Unity гонит. версия 2021.3.4f1
@user-uw6lq7hb9j
@user-uw6lq7hb9j Жыл бұрын
Добрый день. Вопрос-а можно ли использовать этот код для мобильной игры?
@igrodelsky
@igrodelsky Жыл бұрын
Добрый. Можно.
@RastyDBD
@RastyDBD 3 жыл бұрын
Я переписал код,и сделал так же, но как мне в игре открыть дверь?Надо нажать кнопку чтобы открыть а как это сделать?У тебя точка на экране
@igrodelsky
@igrodelsky 3 жыл бұрын
Ставишь булевую can_be_opened_now в true и запускаешь функцию Open_close()
@RastyDBD
@RastyDBD 3 жыл бұрын
@@igrodelsky я новичок, булевую сделал а как фунцию, и где ее запустить не знаю.Было бы легче если полный ролик с этим был бы
@igrodelsky
@igrodelsky 3 жыл бұрын
@@RastyDBD Функция эта в скрипте уже есть. Я всё подробно рассказал и показал. Было бы легче, если бы смотрел внимательно и не перематывал.
@limon4ikplay747
@limon4ikplay747 7 ай бұрын
Здраствуйте.А можно с помощью этого скрипта открывать несколько дверей 1 типа? И как это можно реализовать под андроид?
@igrodelsky
@igrodelsky 7 ай бұрын
Здравия. Можно и несколько дверей сразу так открывать, можно и под Андроид. Для этого потребуется некоторая модернизация кода. Для нескольких дверей можно скрипт и не менять, а просто в другом скрипте сделать массив дверей с этим скриптом и у всех запускать соответствующую функцию.
@limon4ikplay747
@limon4ikplay747 7 ай бұрын
@@igrodelsky Спасибо
@bnniply3918
@bnniply3918 5 ай бұрын
доброй ночи можете сделать туториал как добавить ключ?
@igrodelsky
@igrodelsky 5 ай бұрын
Здравствуй. Смотри уроки по инвентарю и соединяй воедино.
@igrodelsky
@igrodelsky 5 ай бұрын
kzfaq.info/get/bejne/l7p5dLJ9r86rqI0.html
@user-jq1vq2wl6n
@user-jq1vq2wl6n 7 ай бұрын
Здравствуйте. У меня такая проблема, что когда я дублирую дверь например выдвижную и пытаюсь открыть одну из дверей, открываются и закрываются обе. Можете подсказать как это исправить? Чтоб они открывались по отдельности
@igrodelsky
@igrodelsky 7 ай бұрын
Скрипт вешается на дверь. Поэтому к какому скрипту обращается - та дверь и будет работать.
@user-jq1vq2wl6n
@user-jq1vq2wl6n 7 ай бұрын
@@igrodelsky а как это можно исправить ,чтоб не создавать много кнопок по открытию дверей?У меня на 1 кнопке указаны два объекта с скриптами открытия/закрытия выдвижных дверей и выходит,что они открываются обе
@igrodelsky
@igrodelsky 7 ай бұрын
@@user-jq1vq2wl6n Скрипт в уроке открывает двери по отдельности. Напиши также, только с проверкой на расстояние.
@user-jq1vq2wl6n
@user-jq1vq2wl6n 7 ай бұрын
@@igrodelsky Спасибо
@rev91
@rev91 2 жыл бұрын
Хочу хоррор зделать не знаю как зделать так чтоб дверь можно было открыть токо через пароль или ключ помогите если не сложно пожалуйста
@igrodelsky
@igrodelsky 2 жыл бұрын
kzfaq.info/get/bejne/l7p5dLJ9r86rqI0.html
@user-ou6bj9di9r
@user-ou6bj9di9r 2 жыл бұрын
что делать если я долго переписывала ваш скрипт он пишет asset door.cs (3.32 error cs1514 {expected можете скинуть ваш скрипт что бы я проверила мой скрипт и ваш
@igrodelsky
@igrodelsky 2 жыл бұрын
Имя класса должно соответствовать имени файла скрипта.
@gavkazz
@gavkazz 2 жыл бұрын
Здравствуйте,я пришел к вам с просьбой,видео очень познавательное,и интернесное,но пожалуйста,скиньте мне сам код,потому что переписал все да как,и потом много ошибок,я и перепроверял,переписывал,никак.Очень мне нужна помощь! Если вы не заняты.
@igrodelsky
@igrodelsky 2 жыл бұрын
Здравия. Нужно постараться.
@gavkazz
@gavkazz 2 жыл бұрын
@@igrodelsky (
@sl0vvman978
@sl0vvman978 2 жыл бұрын
Может подскажите как сделать с помощью луча интерактивную точку? Лутше будет ссылкой на видио или форум
@igrodelsky
@igrodelsky 2 жыл бұрын
Что подразумевается под "интерактивной точкой" ?
@ieretsumi
@ieretsumi 2 жыл бұрын
Владимир Доброго времени! Скрипт у вас не совсем универсальный. Закрался маленький недочет. Дело в том, что если объект не был ориентирован под систему координат unity в 3D Max или Blender , то вращать его скорее всего прийдется по двум осям. например объект в unity стоит прямо если его повернуть на 90 градусов по Х. тогда лучше использовать Quaternions. Например Open(90, 120, 0, 0); и Close(90, 0, 0, 0); Как видите вращение указано по двум осям. Такое происходит повсеместно, в том числе и в платных ассетах попадается. Спасибо за видео.
@igrodelsky
@igrodelsky 2 жыл бұрын
Здравия. Можно пивот из пустышки сделать вручную в нужном месте для любой модели.
@acidkeat8067
@acidkeat8067 Жыл бұрын
@@igrodelsky кстати попробую, может баг из-за этого как раз
@ffvfvrfcercfvfecds
@ffvfvrfcercfvfecds 3 жыл бұрын
А почему дверь можно из далека открыть?
@igrodelsky
@igrodelsky 3 жыл бұрын
Потому, что это скрипт двери, а не скрипт взаимодействия игрока с объектами. Кто-то сделает это взаимодействие одним способом, кто-то другим. Я сам механизм открывания показал, а остальное просто для примера.
@randalf4184
@randalf4184 4 ай бұрын
настрой рейкаст
@kinok22
@kinok22 Жыл бұрын
Почему дверь открывается не как у тебя а просто во круг своей же оси Как дверь в тц
@igrodelsky
@igrodelsky Жыл бұрын
Смотри внимательно и повторяй всё в точности - тогда и результат будет такой же.
@kinok22
@kinok22 Жыл бұрын
@@igrodelsky Хорошо, спс. Вообще урок огонь
@bbar0n10
@bbar0n10 3 жыл бұрын
Можете залить данный код допустим на гетхаб и.т.д?
@igrodelsky
@igrodelsky 3 жыл бұрын
Нет, лучше переписать с экрана самостоятельно. Тогда суть усвоится лучше, чем просто скопировать и вставить.
@bbar0n10
@bbar0n10 3 жыл бұрын
@@igrodelsky я уже переписал Спасибо за урок!
@AliceMonUnitydeveloper
@AliceMonUnitydeveloper 2 жыл бұрын
@@igrodelsky Ну вы серьезно? Я и так понимаю как это работает! А вы туда сюда мотаете и получается каша. Лучше бы оставили ссылку, чтобы в гитхабе посмотреть
@igrodelsky
@igrodelsky 2 жыл бұрын
@@AliceMonUnitydeveloper Лучше бы за Трампа проголосовал.
@acidkeat8067
@acidkeat8067 Жыл бұрын
факмоймозг да почему она у меня в сторону уезжает, перепрвоерил всё уже 200 раз, даже пивот добавил пустым объектом; какая-то катавасия! xD
@igrodelsky
@igrodelsky Жыл бұрын
Н - невнимательность
@region34cg
@region34cg 3 жыл бұрын
Хороший пресет, но очень много проверок в апдейте. Лучше выполнить одну проверку, если нажата кнопка(...) и потом выполнять остальное.
@igrodelsky
@igrodelsky 3 жыл бұрын
Покажи, если знаешь, как сделать тоже самое, но без всех этих проверок. Кнопка вообще должна нажиматься в скрипте игрока, в той части, где взаимодействие с интерактивными объектами выполняется. Я объяснил в видео, что написал всё сюда, чтобы для урока обойтись одним скриптом. Там суть в самом скрипте открывания дверей, а не в том, как нажатие проверять.
@region34cg
@region34cg 3 жыл бұрын
Я имею ввиду, что в апдейте только при нажатии определённой кнопки, срабатывает метод Raycast и далее, если луч попадает в коллайдер и тд. Весь тот скрипт который ниже.
@igrodelsky
@igrodelsky 3 жыл бұрын
@@region34cg Я о том же и писал выше, и говорил в уроке. Что пускание луча не должно быть в скрипте самой двери. Я делаю его в скрипте игрока и оттуда уже обращаюсь к скрипту двери, если луч попал на дверь и нажата клавиша. В уроке же для упрощения, чтобы не писать два скрипта, сделал через встроенные функции интерактивность с дверью.
@region34cg
@region34cg 3 жыл бұрын
Тогда пордон-те, возможно прослушал. 👍
@triplex3459
@triplex3459 2 жыл бұрын
А где ты смог скачать этот скрипт?
@user-ou6bj9di9r
@user-ou6bj9di9r 2 жыл бұрын
Привет можешь дать пожалуйста код который вы использовали в этом видео я подписана на вас
@igrodelsky
@igrodelsky 2 жыл бұрын
Здравствуй. Я предлагаю переписать с экрана, дабы вникнуть в суть хоть немного.
@user-ou6bj9di9r
@user-ou6bj9di9r 2 жыл бұрын
@@igrodelsky Все спасибо переписала!
@user-ou6bj9di9r
@user-ou6bj9di9r 2 жыл бұрын
@@igrodelsky я заметила у вас ошибку я переписала и там выдают ошибку в консоли типо этого assets DOOR.cs (3.32:errror cs1514 и проект запускаться не хочет можете скинуть скрипт что бы я проверила свой и ваш скрипт
@igrodelsky
@igrodelsky 2 жыл бұрын
@@user-ou6bj9di9r В моём скрипте ошибок нет. Имя класса должно соответствовать имени файла скрипта.
@ffvfvrfcercfvfecds
@ffvfvrfcercfvfecds 3 жыл бұрын
привет! а можно скрипт накинуть на кнопку? ну чтобы ты нажимал на кнопку и дверь открывалась
@igrodelsky
@igrodelsky 3 жыл бұрын
Здравствуй. Можно как угодно, нужно только под все модификации код немного менять или иерархию объектов.
@xx1m143
@xx1m143 2 жыл бұрын
error CS0201: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement ошибка в строках if(door_axis == door_axis_ENUM.X) start_dist_or_angle == transform.localEulerAngles.x; Как решить?
@igrodelsky
@igrodelsky 2 жыл бұрын
Переписать правильно код с экрана.
@bnniply3918
@bnniply3918 5 ай бұрын
Добрый ночи у меня выдает ошибку на 10 строке cs 1585(заранее кол переписал правильно
@igrodelsky
@igrodelsky 5 ай бұрын
Доброй. Текст ошибки в студию.
@bnniply3918
@bnniply3918 5 ай бұрын
@@igrodelsky member modifier cs1585 "public" must precede the member type and name
@igrodelsky
@igrodelsky 5 ай бұрын
@@bnniply3918 Ты, видимо, пропустил тип или имя переменной.
@bnniply3918
@bnniply3918 5 ай бұрын
А там получается вместо enum что писать надо ?
@bnniply3918
@bnniply3918 5 ай бұрын
Или вообще где то в коде пропустил ?
@Iavehz-milo02
@Iavehz-milo02 25 күн бұрын
Скиньте пожалуйста скрипт в комментариях
@user-ou6bj9di9r
@user-ou6bj9di9r 2 жыл бұрын
кстати а писать там где вы написали на русском мне также на русском писать или на английском или не писать вообще
@igrodelsky
@igrodelsky 2 жыл бұрын
Комментарии можно не писать
@tainus8492
@tainus8492 Жыл бұрын
как настроить rigedbody
@NordPrice
@NordPrice Жыл бұрын
Лучше залезь в руководство по юнити, там всё написано
@user-wo3eb3gq4g
@user-wo3eb3gq4g Жыл бұрын
Дайте кто-то код плиз
@vosagames
@vosagames 2 жыл бұрын
cкинте кто то скрипт плиз 4 часа в пустую просрал
@nebebra4600
@nebebra4600 2 жыл бұрын
Где можно скопировать код ? Т.к. писать код долго , а я еще сделаю кучу ошибок .
@igrodelsky
@igrodelsky 2 жыл бұрын
Нигде. Чем больше будешь сам писать - тем меньше будешь допускать ошибок и больше понимать.
@nebebra4600
@nebebra4600 2 жыл бұрын
@@igrodelsky Хорошо :)
@LANSHIFTSTUDIO
@LANSHIFTSTUDIO 9 ай бұрын
Можно пожалуйста код для копирования, переписывать долго а у меня дедлайн через несколько часов. Помогите плиз!
@Kot_Po_Zhizni
@Kot_Po_Zhizni 3 жыл бұрын
А что насчёт андроид?
@igrodelsky
@igrodelsky 3 жыл бұрын
Для мобил отличается только код самого взаимодействия с объектом, а код открывания дверей такой же.
@Kot_Po_Zhizni
@Kot_Po_Zhizni 3 жыл бұрын
@@igrodelsky да вот прям срочно нужно для андроид , но на всём Ютубе нету ничего
@rubo96
@rubo96 2 жыл бұрын
@@igrodelsky Сделай урок с дверью, но под Андроид, пожалуйста
@igrodelsky
@igrodelsky 2 жыл бұрын
@@rubo96 Принцип работы двери не зависит от платформы. Различие только в управлении.
@triplex3459
@triplex3459 2 жыл бұрын
А где можно скачать этот скрипт?
@ZmitserZnatnow
@ZmitserZnatnow 2 жыл бұрын
Куда столько публичных полей? Можно было сделать чуть красивее и практичнее [Header("audio")] - Задает подпись над сериализуемым полем, которая отображается в инспекторе. [SerializeField] private float _openSpeed = 150f; (прим.) Не отрицаю тот факт, что возможно вы это уже знали, и для вас это не новая информация, но всё же, пусть будет. Может кто то другой узнает что то новое.
@creex463
@creex463 2 жыл бұрын
а открытие дверей скриптом не смутило? :D Такое логичнее делать через анимации.
@ZmitserZnatnow
@ZmitserZnatnow 2 жыл бұрын
@@creex463 у Анимаций есть свои проблемы. Открытие дверей через код куда будет практичнее, чем анимации, если конечно же это не иф елсе, хотя каждый дрочит как он хочет.
@igrodelsky
@igrodelsky 2 жыл бұрын
@@creex463 Это УНИВЕРСАЛЬНЫЙ скрипт двери. Если кому-то кажется удобнее в каждом отдельном случае записывать индивидуальную анимацию, вместо написания одного скрипта на все случаи жизни, то вот это действительно должно смущать ...
@igrodelsky
@igrodelsky 2 жыл бұрын
@@ZmitserZnatnow А в чём проблема с if else ?
@creex463
@creex463 2 жыл бұрын
@@igrodelsky нечитаемость кода как минимум, стейт машины куда приятнее
@RedEyesCompany
@RedEyesCompany 4 ай бұрын
Здравствуйте! Можете написать мне скрипт в ответ?
@igrodelsky
@igrodelsky 4 ай бұрын
Здравствуй. Нет.
@RedEyesCompany
@RedEyesCompany 4 ай бұрын
@@igrodelsky Спасибо
@igrodelsky
@igrodelsky 4 ай бұрын
@@RedEyesCompany Не за что ;)
@NordPrice
@NordPrice Жыл бұрын
Здравствуйте. Спасибо!!! До свидания.
@pavelskachkov3384
@pavelskachkov3384 3 жыл бұрын
Много кода, всё делается на много проще.
@igrodelsky
@igrodelsky 3 жыл бұрын
Покажи свой вариант, тогда можно будет о чём-то говорить.
@pavelskachkov3384
@pavelskachkov3384 3 жыл бұрын
@@igrodelsky В VK Сообщение оставил.
@igrodelsky
@igrodelsky 3 жыл бұрын
@@pavelskachkov3384 Всё мимо.
@dorveytarn
@dorveytarn 3 жыл бұрын
Поддерживаю, куча дублирования, проверка по строкам захардкоженная и миллион-этажные if-else. Очень нравятся ролики канала, но тут какой то прям bad practice
@igrodelsky
@igrodelsky 3 жыл бұрын
@@dorveytarn Отвечаю, как и комментатору выше. Покажи как нужно, а иначе это пустые слова. Я допускаю, что можно как-то более оптимально сделать, так как пишу свой любительский код, но просто написать что-то типа "можно лучше" - это коммент ни о чём. Я не люблю свитч, предпочитаю иф элс. Не вижу никакой в этом проблемы. Суть одна и та же.
@user-wr9pn3ob1i
@user-wr9pn3ob1i 3 жыл бұрын
лучше бы оставил скрипт в описании :(
@igrodelsky
@igrodelsky 3 жыл бұрын
Лучше бы сам переписывал с экрана, а не тупо копировал готовый код. Тогда больше бы вникал и понимал.
@user-wr9pn3ob1i
@user-wr9pn3ob1i 3 жыл бұрын
@@igrodelsky ага если б я понимал тогда давно создал бы свой киберпанк. Это сложно понять а C# учить лень. Мне легче скопировать темболее это быстрей
@igrodelsky
@igrodelsky 3 жыл бұрын
@@user-wr9pn3ob1i Если учить лень, то иди фуры разгружать. Значит игрострой не для Тебя.
@anchovy3601
@anchovy3601 2 жыл бұрын
@@igrodelsky по фактам парня раскидал
Red❤️+Green💚=
00:38
ISSEI / いっせい
Рет қаралды 87 МЛН
⚡ Всё про события в Unity 3D
21:38
Emerald Powder
Рет қаралды 103 М.
OPENING a DOOR in UNITY on TRIGGER EVENT
8:20
SpeedTutor
Рет қаралды 110 М.
Всё про корутины в Unity 3D
13:18
Emerald Powder
Рет қаралды 100 М.
Сохранение открытых уровней в Unity
22:43
Graphical Design
Рет қаралды 59 М.