🌐 Онлайн игра: полный туториал, часть 1 [Unity 3D] [Photon] - матчмейкинг и простая синхронизация

  Рет қаралды 135,977

Emerald Powder

Emerald Powder

5 жыл бұрын

Первое видео из планируемой серии про создание онлайн игры. В этих видео я буду пошагово создавать игру в Unity 3D с использованием Photon Unity Networking (PUN), и подробно показывать и рассказывать всё что я делаю. Фокус сделаю всё таки на мультиплеере, так что если у вас есть даже базовые навыки программирования на C# в Unity, и вы хотите разобраться в тонкостях онлайна и мультиплеера, то эти видео для вас
Игра которую мы будем делать в процессе этих видео будет чем-то в стиле .io игр, с простым управлением и идеей. В ней будет стандартный matchmaking из Фотона, и не будет никакого сложного мета-геймплея (уровней, предметов, валюты)
Содержание:
Введение - 0:01
Матчмейкинг и соединение игроков - 1:24
Персонажи и их перемещение - 13:00
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Пікірлер: 296
@arttmptt
@arttmptt 4 жыл бұрын
Да ну нахуй, урок, ВИДЕОУРОК, и такой свежий, МЕСЯЦ НАЗАД всего лишь!! А то захожу на первый сайт по фотону и он 2013 года. Капец, то, что нужно, автору огромное спасибо.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Пожалуйста) Да, на русском точно сложно что-то такое найти, поэтому и решил делать. Но вообще можно посмотреть на примеры игр которые с ассетом фотона идут, в них если разобраться то никакие туториалы не понадобятся
@Saltant
@Saltant 4 жыл бұрын
Да с 2013 года в создании мультиплеера на фотоне ничего и не поменялось, смысл пилить 100500 одинаковых видосов как юзать эту библиотеку?) Вот если бы был видос как писать свой авторитарный сервер на tcp сокетах (написание своей высокоуровневой обертки например), яб посмотрел, такой контент был бы годный, т.к там не всё так просто как может показаться на первый взгляд.
@Worlfable
@Worlfable 4 жыл бұрын
@@Saltant Да-да ещё качество такое отличное в этих уроках 2013 года, ничего не разглядеть и звук шипяще-пердящий. Ну-ка ну-ка, скажи "Зачем что-то смотреть, если знаешь азы" и я отправлю тебя на аудиокниги по программированию xD
@Saltant
@Saltant 4 жыл бұрын
@@Worlfable Зачем смотреть? глупый вопрос, - была же надежда что автор покажет какие то новые решения в своей разработке, но чуда не случилось.
@tubixpvp4659
@tubixpvp4659 4 жыл бұрын
@@Saltant Написать свой сервер с нуля будет намного сложнее
@user-gm7ep7gx5i
@user-gm7ep7gx5i 5 жыл бұрын
Ну прямо здорово. Очень интересно. Спасибо.
@just4funTony
@just4funTony 4 жыл бұрын
Приятный голос и хорошая дикция. Объясняешь все быстро и четко. Спасибо большое за то что ты делаешь
@spartanzneverdie3211
@spartanzneverdie3211 4 жыл бұрын
Друг, я восхищен твоей подачей :) Подписка и лучшие пожелания
@Lynx-cm5dz
@Lynx-cm5dz 4 жыл бұрын
Мое почтение автору за гайд. Хотел сделать мультиплеер и наткнулся на него случайно, а оказалось, что на канале впринцепе очень много полезной информации по разработке игр.
@evgeniyrakov4598
@evgeniyrakov4598 5 жыл бұрын
Спасибо за годное видео! Лайк и подписка! С нетерпением жду продолжения этой темы ;)
@notmyfall
@notmyfall 3 жыл бұрын
Отличный урок! Спасибо! Наконец-то просто и понятно
@user-we6si4mi3x
@user-we6si4mi3x Жыл бұрын
Комментарий в поддержку! Урок супер!!!
@gm_Maker
@gm_Maker 4 жыл бұрын
Радуюсь, что попался Твой канал! Спасибо! :)
@delalen8012
@delalen8012 5 жыл бұрын
Спасибо!) Все круто :)
@_shon3266
@_shon3266 3 жыл бұрын
Спасибо друг, не бросай это дело!)
@nephronnephronsky1762
@nephronnephronsky1762 4 жыл бұрын
Очень классный урок ! Все четко и ясно. Не хватает исходников Assets . Хотя и без них просто 5 плюсов.
@DoctorWatsonPlay
@DoctorWatsonPlay 4 жыл бұрын
Автор топ, всё понятно рассказал и показал
@stasian.tip.official
@stasian.tip.official 2 жыл бұрын
Все в деталях, ясно и понятно, круто объяснил
@user-dr2ew3en8j
@user-dr2ew3en8j 5 жыл бұрын
Очень здорово, спасибо
@user-yi9tq7xg2w
@user-yi9tq7xg2w 5 жыл бұрын
Рад что твой канал растет, ведь контент очень годный )
@wizik321
@wizik321 3 жыл бұрын
O лол ава из гд)
@kolyah35
@kolyah35 3 жыл бұрын
@@wizik321 О, андрей12рус, привет
@wizik321
@wizik321 3 жыл бұрын
@@kolyah35 о привет:)
@emche852
@emche852 5 жыл бұрын
Интересная задумка и начало туториала) Дождусь выхода всех частей) Лайк авансом :D
@Cyb11893
@Cyb11893 5 жыл бұрын
Тутор Агонь!
@BasonIndieDev
@BasonIndieDev Жыл бұрын
это очень круто! Спасибо за такой крутой гайд.
@sha1z291
@sha1z291 5 жыл бұрын
Хороший видео ролик! Однозначно лайк!
@user-fr9od3dw9h
@user-fr9od3dw9h 4 жыл бұрын
Чел, ты крут. Спасибо большое
@StimSmit
@StimSmit 4 жыл бұрын
Это именно то, что мне было нужно
@user-zr2wx3by2s
@user-zr2wx3by2s 4 жыл бұрын
Как же ты пиздато объясняешь, спасибос)
@user-fg3oi7yb3e
@user-fg3oi7yb3e 3 жыл бұрын
Годнота)) спасибо)
@MsWital
@MsWital 2 жыл бұрын
Прикольненько! спасибо)
@alife1313
@alife1313 4 жыл бұрын
да очень круто ОГРОМНОЕ за уроки
@user-hk5tt9jl3c
@user-hk5tt9jl3c 4 жыл бұрын
Спасибо! Этот видеоурок мне очень помог. До этого смотрел серию видеоуроков по мультьиплееру в юнити, но они были сняты до удаления Networking функций из юнити, поэтому я их и забросил. Но сейчас с радостью вернулся в юнити!
@Me-ss6rr
@Me-ss6rr 3 жыл бұрын
не ну прям АтлЫшНа автору рЫспект и уважееение
@user-dx7qw9hd1v
@user-dx7qw9hd1v 2 жыл бұрын
Найліпший туторіал по Photon, який я бачив, просто прекрасний. Скільки ж я нервів вбив, через то, що ніде неміг знайти нормальний туторіал((( Ти найліпший, роби більше відео!!!
@user-st2rw7dv5b
@user-st2rw7dv5b 5 жыл бұрын
Спасибо!
@FingalYT
@FingalYT 4 жыл бұрын
Огромное спасибо
@eduoki8498
@eduoki8498 4 жыл бұрын
спс за видос бро
@romanparkyrshik
@romanparkyrshik 5 жыл бұрын
Неплохо
@ziklock2298
@ziklock2298 Жыл бұрын
Очень крутой урок, другие объемными непонятно но ТЫ ТТОП
@BOGZOERT
@BOGZOERT 5 жыл бұрын
"Тут должна быть картинка" Наконец-то, нормальная еда.
@DimokFa
@DimokFa 2 жыл бұрын
Ты крутой мужик.
@--.--
@--.-- 4 жыл бұрын
idealno
@goosesuka
@goosesuka 3 жыл бұрын
спасибо за видео я уснуть не мог после уроков для начинающих по юнити 10 минут твоего видео сддосили мой мозг уснул и спал как убитый
@Baannia
@Baannia 4 жыл бұрын
🔥 🔥 🔥
@user-un6sj6eh8g
@user-un6sj6eh8g 3 жыл бұрын
:D:D:D:D СПАСИБО ОГРОМНОЕ ПОЙДУ ДЕЛАТЬ ВЫЖИВАЛКУ :DDDD
@RinatVakhitov
@RinatVakhitov 2 жыл бұрын
Хотелось бы увидеть само начало, как устанавливать unity, делать это окно и прочее, с этим большие проблемы, откуда скачать sprite sheet
@ph0war_d935
@ph0war_d935 3 жыл бұрын
Отличный канал! Всегда с удовольствием смотрю твои видосы! Но почему, просто нельзя было упомянуть, что Unity Editor и созданный Build могут подключаться к разным регионам? Получалось, что код точно такой же, настройки те же, но билд не мог найти сервер, созданный в эдиторе. Оставил бы хотя бы ссылку на туториал по установке Photon
@RinatVakhitov
@RinatVakhitov 2 жыл бұрын
Подскажите какие типы сообщений передаются между игроками? В каком формате идёт передача информации? И подвергаются ли сообщения шифрованию или сжатию?
@design_art_style
@design_art_style 3 жыл бұрын
Фотон? прикольно получилось надо учиться
@MsWital
@MsWital 2 жыл бұрын
УХ круто) почти все расставил в моей голове по полкам, только протароторил быстро)) ну есть же пауза и отмотка назад да?))
@MsWital
@MsWital 2 жыл бұрын
фак) это коммент на пред идущий видосик))
@yohoho_maxON
@yohoho_maxON 4 жыл бұрын
Для полного понятия и соответствия с уроком было бы здорово получить такие же ассеты, которые используете вы. Где их можно скачать?
@CyrillKurochkin
@CyrillKurochkin 3 жыл бұрын
Делюсь своими шиками. Если у вас лишний/второй/два/клон персонажа у создавшего комнату - не надо добавлять префаб Payer на сцену, мы его добавляем программно через '1PhotonNetwork.Instantiate(PlayerPerfab.name...'
@vrclubportal4347
@vrclubportal4347 4 жыл бұрын
Крутые уроки !!! спасибо , если нужна помощь могу заставку заставку за пилить :)
@play-scp
@play-scp 3 жыл бұрын
Братан все круто только оставляй готовые скрипты пж
@michaelmarkov847
@michaelmarkov847 2 жыл бұрын
Сними видео о том как сделать авторитарный сервер , буду очень признателен
@mynameis9848
@mynameis9848 5 жыл бұрын
Урок Супер! Хотел кое- что спросить, делал все как в видео, но работал с 3D. Одной - "Main Camera" для меня мало, т.к это повторюсь 3D, и на каждого игрока своя камера. Однако при подключении они меняются и это выгладит ужасно, если кто знает как сделать онлайн с как минимум 2-мя игроками + индивидуальными камерами на каждого, пишите, буду благодарен!
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Спасибо! Тут так же, как я делаю в 3 части со спрайтом игрока, нужно выключать камеру у персонажей, которые текущему игроку не принадлежат. То есть в Start у Player проверять если !Photon.IsMine, то выключать камеру следящую за этим Player'ом
@1stmakarenko
@1stmakarenko 5 жыл бұрын
Привет, расскажите пожалуйста как пользоваться profiler, и вообще про оптимизацию игры
@oleh.prukhnytskyi
@oleh.prukhnytskyi 4 жыл бұрын
Сам ищу ответ)
@shpyltikek8614
@shpyltikek8614 3 жыл бұрын
Добрый день а на примере этой игры можно сделать шутерок в стиле Doom 1-2
@M4gnuson
@M4gnuson 4 жыл бұрын
Можно ссылку на sprite sheet из видео? 1:34
@user-ti6bd7wy7g
@user-ti6bd7wy7g 4 жыл бұрын
Почему у меня при импорте возникают много ошибок? В ошибках есть UI, EventSystem.
@artinstroukeprod
@artinstroukeprod 4 жыл бұрын
В сцене Lobby после некоторых запусков остаются висящие эксземплярры сцены Lobby в редакторе. Выглядит это как список Lobby (not loaded). Кто нибудь знает как исправить и нужно ли править?
@eldor2532
@eldor2532 5 жыл бұрын
Спасибо за видео. Что можете подсказать по поводу написания сервера для ммо шутера, сделанного на unity? На чем его писать? Какую БД для этого выбрать? Как реализовать расчет попадания/промаха при выстреле/ударе? Так же меня интересует реализация рубки деревьев. Как такое правильно реализовать, когда в игре огромные насаждения деревьев и сруб одного дерева виден всем пользователям? Для каждого дерева в БД записывать срублено/не срублено?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Для ммо-шутера придётся серьёзно подумать, если много игроков будет то физику точно придётся самим обсчитывать на сервере (не использовать стандартную из Unity), и в рамках этой же физики все попадания промахи. Плюс ещё с задержкой опять же придётся самим придумывать как справляться, если шутер то это будет важно. Но вообще даже если на карте пара тысяч игроков, то сделать raycast это не так дорого в плане производительности, но в целом физика это не так просто По поводу БД - опять же я не эксперт совсем в разработке ммо - но это не так важно, она будет использоваться только чтобы долговременно сохранить состояние скорее всего, т.е. сервер при старте оттуда всё будет загружать, и при изменении чего-нибудь записывать, чтобы не потерять при перезапуске. Так что можно любую SQL брать смело А для деревьев - даже если их очень много, скажем 100к, то это можно сохранить либо как просто массив байт (100КБ), либо вообще сжать и в одном байте хранить 8 бит, тогда вообще меньше 20КБ получится. Все деревья как-то пронумеровать придётся для этого, но они наверное на карте в каком-то порядке и стоят. Тогда на сервере просто в файле или бд хранить этот один массив, и при подключении игрока ему выдавать. А если во время игры срубили дерево то слать ему просто номер дерева. Я что-то очень похожее буду делать с блоками земли в следующих частях этого туториала, там по сути тоже их много на карте, и каждый может быть выкопан или нет
@eldor2532
@eldor2532 5 жыл бұрын
@@EmeraldPowder вот как раз меня и интересует вопрос на чем писать такой сервер... К сожалению у меня есть некоторый опыт только в веб. Имеются некоторые познания в установке серверов nginx+apache на linux. Backend практиковал на php+mysql, а frontend - js. Я понимаю, что php не подходит для просчёта физики в ммо-шутере. Максимум чем он (php) будет полезен - записать в БД информацию на долгосрочное хранение. По поводу леса - спасибо - я предполагал, что как-то так и нужно делать. Не мог найти конкретного примера...
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Если есть опыт работы с юнити и C# - то можно попробовать на чистом C#. Но для шутера если писать прямо что-то своё, с общением через UDP сокеты (для шутера по скорости наверное только это подойдёт), то будет сложновато мне кажется для первого проекта подобного рода. Ну и опять же прямо для продакшена в ММО, если хочется сделать с перспективой на тысячи пользователей - я бы сам за такой проект побоялся браться :) В общем советую C#, как минимум потому что проще на одном языке писать сервер и клиент, можно переиспользовать код, да и C# популярен для всякого Enterprise, так что подходит для таких вещей
@eldor2532
@eldor2532 5 жыл бұрын
Emerald Powder, я тоже так считаю, что для шутера самый оптимальный вариант - использование udp. Спасибо за советы.
@user-jl3zy4lq3x
@user-jl3zy4lq3x 4 жыл бұрын
А ты не мог бы рассказать, как синхронизировать IK при помощи PUN 2
@Grigoriy457
@Grigoriy457 3 жыл бұрын
Подскажите пожалуйста что это за ассет со спрайтами?
@hasagichillroom-8915
@hasagichillroom-8915 4 жыл бұрын
пацаны, там когда на кнопки методы или функций эти выставляешь в коде lobby manager там на подключений к рандомной комнате нужно было поставить JoinRoom а он у меня не высвечивается только OnJoinedRoom
@stashmm
@stashmm 3 жыл бұрын
уже узнал почему?
@lebron2729
@lebron2729 4 жыл бұрын
Не могу создать комнату, подскажите в чем беда может быть, все делаю по видео и не могу почему то создать
@Caduceus80
@Caduceus80 3 жыл бұрын
А есть возможность на Фотоне писать серверный код? Что-то при первом взгляде доступно только эхо между клиентами. Нет? А если мне надо хранить прогресс игроков - разумеется это надо хранить на сервере. Есть такая возможность в Фотоне?
@user-hp2cg6px8c
@user-hp2cg6px8c 4 жыл бұрын
У меня почему-то Player очень крошечный. Размер канваса 1024, картинка человечка была 32х32, но когда он спавнится при старте - его даже не видно (кое-как догадался, что он мизерный), пришлось его увеличить в 100 раз. Но, при этом, и его движения пришлось умножать на 100, чтоб он нормально двигался. Почему так?
@Storik4
@Storik4 2 жыл бұрын
А какую среду для ред. скриптов используешь?
@gurgenmatevosyan7036
@gurgenmatevosyan7036 2 жыл бұрын
Здравствуйте , а при запуске игры как включаете два окна для проверки там написано Minerlo , но ничего не смог искать по гугл
@_oleg_dj_
@_oleg_dj_ 3 жыл бұрын
Странно, но у меня не создаются спрайты персонажей. Также выдаёт ошибку, буду-то префаб не находится в папке с названием "Resources".
@gun1246
@gun1246 3 жыл бұрын
Добрый день. Не подскажите, как быть, если я хочу использовать свой сервер? Есть ли какой-то инструмент, похожий на photon?
@tomasgammister5776
@tomasgammister5776 2 жыл бұрын
скажите по удаленке с другом например будет работать ?
@user-ql3ud4hj2u
@user-ql3ud4hj2u 4 жыл бұрын
Если у кого-то есть проблема - после нажатия кнопки "Join random room" второй клиент не заходит в комнату к первому, то попробуйте вручную в "PhotonServerSettings" указать регион (например RU). Есть особенность, что иногда запуск в редакторе и запуск в exe-шнике заходят на разные регионы и не могут соединиться. Узнал из этого урока kzfaq.info/get/bejne/ZpiAktCj2ODaqo0.html
@Fortovoy_paren
@Fortovoy_paren Жыл бұрын
я кншн понимаю что прошло 2 года, но где этот скрипт находится
@user-ql3ud4hj2u
@user-ql3ud4hj2u Жыл бұрын
​@@Fortovoy_paren Регион указывается не в скрипте, а в вкладке инспектора "PhotonServerSettings", строка "Fixed region", указать например "RU". На указанной ссылке вкладку видно справа на 6: 58. Таймкод в предыдущем комменте исправлю.
@user-yy9uk7ro6c
@user-yy9uk7ro6c 3 жыл бұрын
Может кто-то подсказать, пожалуйста, используя фотон - как можно сделать, систему подготовки игроков? По типу, только когда все игроки нажали "Готов" - начиналась игра, ну или происходило какое-либо действие любое, хоть просто в консоль писалось что-то? Очень прошу!
@pokruk0
@pokruk0 2 жыл бұрын
18:21 я правильно понимаю, это ведь отвечает за клиентскую часть? То-есть по сути читер может убрать эту проверку и отправлять преспокойно пакеты, чтобы двигало любого другого?
@BeregAlto
@BeregAlto 5 жыл бұрын
Спасибо отличное за видео! Кажется, пропущен момент с AppID и регистрацией на сайте фотона...
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
Да, регистрацию на сайте не стал снимать, там в принципе ничего сложного нет. Но сказать наверное стоило, что когда скачиваешь плагин из Asset Store, нужно ещё зарегистрироваться и ввести в настройки плагина свой ID
@OvGames
@OvGames 5 жыл бұрын
@@EmeraldPowder какой именно ID?
@OvGames
@OvGames 5 жыл бұрын
UNET ID?
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
@@OvGames По сути просто аккаунт на сайте фотона, там при скачивании плагина из asset-store откроется окно с формой регистрации и логина. И с этим же аккаунтом можно зайти на сайт, там всякая статистика. Нужно же им как-то определять кто им заплатил, а кто нет)
@OvGames
@OvGames 5 жыл бұрын
@@EmeraldPowder да, я понял
@Wilrav314
@Wilrav314 4 жыл бұрын
А чтотделать если я немогу подключиться к серверу
@iridiummemdevgames6970
@iridiummemdevgames6970 5 жыл бұрын
Большое спасибо за видео, у меня возник вопрос - можно ли избавиться от этой задержки , потому что в каком-нибудь шутере это будет критично
@EmeraldPowder
@EmeraldPowder 5 жыл бұрын
На самом деле задержка не такая заметная - как выглядит именно пинг, около 100мс, можно увидеть например на 0:15, между игрой в юнити и в отдельном окне. А при перемещении всё выглядит хуже из-за стандартного TransformView. Он работает так: например объект в положении (0,0), игрок нажал вправо, теперь у него объект резко в (1,0), послал это другому клиенту, тот получил через ~150мс, но не сразу телепортирует спрайт на экране на расстояние 1, а начинает проигрывать ещё на 300мс анимацию плавного движения в (1,0). Если обратить внимание то на 19:08 видно что у себя в окне игрок движется резко, т.к. мы просто двигаем его с постоянной скоростью если кнопка нажата, а в окне редактора плавно, как раз из-за этой интерполяции Вот эту анимацию мы подгонем под геймплей в следующих сериях, чтобы она стала незаметная, то есть одинаковая у всех игроков. А с задержкой в пинг*2 (до сервера и от него до другого клиента) уже принципиально ничего не сделаешь, только всякие предсказания/хаки, например передавать скорость игрока и сдвигать его спрайт ещё на скорость*пинг. В шутерах в основном такое и используется, но вот например каст заклинания уже никак не предскажешь, так что тут остаётся только отображать с задержкой
@Saltant
@Saltant 4 жыл бұрын
​@@EmeraldPowder Проблема задержки не только в latency между клиентской машиной и серверной, а в архитектуре движка юнити и самих RPC вызовов, смысл в том, что RPC вызов дёргается сервером в многопоточности, асинхронно, клиент подписавшийся на такой rpc call берет из тредпула поток и выполняет там какие то действия, например получает координаты Vector3 рядом стоящего игрока который только что сделал движение, да безусловно какие то наносекунды тратятся на отсыл данных на сервер и перессылку всем клиентам, но это не большие цифры, а вот когда клиент то получает этот Vector3 из rpc вызова, он не может сразу передать этот вектор к объекту MonoBehaviour не из главного потока, клиенту придется записать полученный Vector3 из rpc куда либо и уже из главного потока дёрнуть эти данные и обработать перемещения игрока рядом, главный поток дёргает метод Update() и FixedUpdate() (для обработки физики). Если бы клиент мог сразу двигать объект после получения rpc call, то задержка была бы минимальной, но как правило в играх запрещают доступ к главному потоку из других потоков, т.к можно очень легко всё поломать на примере сказки "Лебедь, Рак и Щука" когда объект будут дёргать сразу несколько потоков одновременно.
@Worlfable
@Worlfable 4 жыл бұрын
@@Saltant не замечал такую задержку в Unet, значит Photon не лучшее, а худшее решение, особенно на бесплатной основе.
@Saltant
@Saltant 4 жыл бұрын
@@Worlfable Photon это паблик-массовый ассет, что ты от него ожидал, он работает из коробки - для многих этого достаточно. В остальном допиливай напильником или же используй свои решения где изначально будешь продумывать архитектуру, работать с предугадыванием (интерполяцией) и еще о защите от читеров не забывать, - это все довольно сложно, вот такие уроки я бы посмотрел с удовольствием т.к у меня нет опыта написания самому успешного сетевого движка, все как раз упирается в эту интерполяцию и защиту от читерства.
@duo-mlbb
@duo-mlbb 4 жыл бұрын
Подскажите, почему при запуске одного клиента всё упрвление идёт нормально , но когда запускаю второй, то с 1-ого окна я управляю персонажем на 2-м окне, и наоборот со 2-го управление идёт первым персонажем
@duo-mlbb
@duo-mlbb 4 жыл бұрын
Если написать вместо if(! isMine) return -> if ( isMine) return, то тогда когда игрок один на сервере он не управляется, а если 2 , то они управляются нормально
@duo-mlbb
@duo-mlbb 4 жыл бұрын
РЕШЕНО : у меня была камера в префабе игрока и при спавне нового камера переключается на последнюю созданную, чтобы исправить в проверке ismine если, это не мы, то destroy / setactive false камеру
@pewbott
@pewbott 4 жыл бұрын
@@duo-mlbb как ты делал проверку? Например, у меня вот камера в префабе у фпс контроллера, я проверяю условие !ismine - дальше с помощью gameobjec.find ищу камеру и дестрою её. Но таким образом я удаляю вообще все камеры, так как это происходит у каждого игрока в методе аптейд. Как это обойти?
@t3m4ch54
@t3m4ch54 4 жыл бұрын
Привет, очень хорошее видео! Можешь подсказать,как проверять кол-во людей в лобби?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Если в лобби - в смысле вообще онлайн в игре - то вроде бы PhotonNetwork.countOfPlayers. Но это судя по документации - сам не проверял, надо попробовать затестить что там происходит когда подходишь к лимиту в CCU, сам хочу что-то вроде очереди сделать
@t3m4ch54
@t3m4ch54 4 жыл бұрын
@@EmeraldPowderCountOfPlayers это с игроками по всем комнатам и вообще в сети, я сегодня нашел метод PhotonNetwrok.CurrentRoom.countPlayers
@Egor_Sigolaev
@Egor_Sigolaev 4 жыл бұрын
Привет. Посмотрел твоё видел и есть вопрос. Как сделать синхронизацию выстрела. У меня инстантиейтится пуля и становится дочерним объектом игрока. Пробовал вешать на неё PhotonView и PhotonTransformView. Не работает. Если запускаю, то я стреляю, а другой чел не стреляет. И так же на другом девайсе. Или надо сделать событие выстрела, как в 3 уроке? Помоги или натолкни пожалуйста)
@Saltant
@Saltant 4 жыл бұрын
Зачем вообще рисовать пулю? кто её увидит на таких скоростях то? Лучами стреляй, не нужно ничего инстантиировать.
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Создавать PhotonView дочерним другого PhotonView думаю не стоит. Если нужны именно пули летящие, то повесить PhotonView на сам префаб пули, и создавать его через Photon.Instantiate, так же как я игроков спауню. Но если пули быстрые - то лучше не создавать вообще PhotonView, а просто слать ивент как в третьем уроке, и спаунить какой-нибудь объект обычным Instantiate, или вообще частицу запускать
@hakerrulit5824
@hakerrulit5824 4 жыл бұрын
Вы еще не запустили мастер установки Photon! Ваша игра не сможет подключиться. Смотрите Windows -> Сеть Photon Unity. Скажи пожалуйста что делать?
@stashmm
@stashmm 3 жыл бұрын
зайди в раздел windiw > Network Photon Unity
@t3m4ch54
@t3m4ch54 4 жыл бұрын
У меня почему-то спавниться по 3-5 объектов, 2-4 объекта. У подключенного и хоста
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Вместо одного объекта игрока по несколько?
@softwet4341
@softwet4341 3 жыл бұрын
У меня есть вопрос. Что мне делать если у меня много скриптов у персонажа и я хочу их всех выключать через PlayerManeger если они не IsMine
@UNREAL4ever
@UNREAL4ever 3 жыл бұрын
Люди, если не видите сообщения о номере игрока и покдлючении к Мастер серверу, просто расширьте поле текста А еще, если Юнити ноет когда вы делаете переменую крейтРум(), то просто во всех ошибках кода нажмите "Реализовать интерфейс"
@zloybivshiy7236
@zloybivshiy7236 Жыл бұрын
Спс, мужик. Лови лайк, мужик.
@_FurryOwO_
@_FurryOwO_ 3 жыл бұрын
А как сделать, типа что б все подключались именно к какому-то серверу? Не к хосту а именно к серверу.
@swokko88
@swokko88 3 жыл бұрын
Отдельно для себя скомпилируй программу с кнопкой "Хост сервера" И запускай у себя на телефоне или компе хост (С определённым именем) И подключай игроков не к рандомной комнате, а к комнате с этим именем
@swokko88
@swokko88 3 жыл бұрын
Или арендуй себе сервер и используй другие модули
@fannymans298
@fannymans298 3 жыл бұрын
Здравствуйте, у меня в редакторе всё исправно работает, но в собранном проекте возникает ошибка Could not resolve host: cdp.cloud.unity3d.com. Можете помочь кто-нибудь
@VitalPig14888
@VitalPig14888 4 жыл бұрын
классный туториал,но проблема со скриптом из этого ассета. в скрипте photon ping cs0101
@oleh.prukhnytskyi
@oleh.prukhnytskyi 4 жыл бұрын
У меня подобное было но 9 ошибок. Я поседел, розобрался и пофиксил их.
@user-ml5tn8qn8j
@user-ml5tn8qn8j Жыл бұрын
Не подскажите в каком направелении копать, чтобы сделать так: первый игрок спавнился внизу экрана, а второй игрок наверху экрана (как это реализовано в хартстоуне) ?
@yourpast1494
@yourpast1494 Жыл бұрын
Если у каждого своё видение и противник всегда сверху, а ты снизу, тогда просто меняешь отображение . В общем каждый игрок будет видеть объект врага сверху и объект себя снизу, вот примерно так, он ведь тоже тебя вверху видит, а себя внизу
@YaYmsc
@YaYmsc 3 жыл бұрын
Привет, мне понравилось, но я не понял, откуда строка Log где пишется вся консоль, как это сделать
@quadath3963
@quadath3963 3 жыл бұрын
В скрипте Lobby метод Log.
@atlinov3751
@atlinov3751 2 жыл бұрын
Как камеру добавить к персонажу? знаю можно прикрепить но когда будет клонироваться то будет багаться
@gh0stcwtactiksnew_lf340
@gh0stcwtactiksnew_lf340 4 жыл бұрын
Привет , как ты сделал Log Text? Просто пытался сделать сам , но у меня какая-та фигня выходила
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Это просто метод, его видно на 6:30, который добавляет к текстовому полю заданный текст. А на сцене создал обычный Create->UI->Text, и его перетащил в скрипт LobbyManager в поле LogText. Про то ответил?)
@gh0stcwtactiksnew_lf340
@gh0stcwtactiksnew_lf340 4 жыл бұрын
@@EmeraldPowder Благодарю)
@user-sm8ch1zx5r
@user-sm8ch1zx5r Жыл бұрын
у меня есть проблема... override методы вызывают ошибку тоесть public override void OnJoinedRoom() например и пишет в юнити что нету подходящего метода поэтому ничего не работает.
@HINCO38
@HINCO38 9 ай бұрын
если сбилдить в WebGL фотон будет работать?
@user-yh5bs4sf2q
@user-yh5bs4sf2q 4 жыл бұрын
Помогите пожалуйста, вроде всё сделал правильно. Когда подключаюся и создаю, только тот кто создатель может управлять, причём когда создатель управляет у всех на мониторах персонаж(танк) тоже двигается. Получается управляет только один человек, а у всех других это просто транслируется
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Если в скрипте управления всё правильно (стоит if (photonView.IsMine)), то может быть создавать объекты нужно через Photon.Instantiate, и вызывать его только на компе того кто должен потом этим объектом управлять
@user-jl3zy4lq3x
@user-jl3zy4lq3x 4 жыл бұрын
А ты не знаешь, как синхронизировать по сети инверсную кинематику?
@user-ck4im9jg2d
@user-ck4im9jg2d 3 жыл бұрын
Здравствуйте! Тут такое дело, у меня 3d игра, все делал по тутору, к объекту прикреплена камера, и когда создается данный объект, то камера переключается на другую, не ту, которую была в начале. Что делать?
@user-mw3uy5vw5g
@user-mw3uy5vw5g 3 жыл бұрын
Другой префаб создай, такой же, только без камеры
@unfort_
@unfort_ 2 жыл бұрын
Крутой видеоурок, но у меня определенные проблемы, и как ни гуглю, как ни пытаюсь решить - все четно. При попытке присоединиться игрока к другому, вместо подключения создается offlineRoom(в логах мне пишет имя комнаты) с 1 из 0 игроков. Что делать уже не знаю, и просто joinRoom пробовал, и joinRandomRoom, и app id вводил и в коде и в файле настроек, и регионы все сделал, вообще ничего не помогает. Пробовал запускать демку из photonRealtime, и вместо joined мне пишет disconnect, почему - без понятия, но вдруг поможет понять в чем проблема...
@pancar5051
@pancar5051 2 жыл бұрын
Возможно ты не создал комнату чтобы туда присоеденяться
@unfort_
@unfort_ 2 жыл бұрын
@@pancar5051 да там в общем я переустановил и оно заработало) правда делать онлайн игру желания больше нет
@moranyt8299
@moranyt8299 4 жыл бұрын
Смогу ли я подключится к другому человеку, если он создаст сервер на другом устройстве
@Jam867
@Jam867 3 жыл бұрын
разумеется
@123Luken
@123Luken 10 ай бұрын
А есть материал о том платный ли photon что бесплатно входит в пакет(если он есть) и что входит в платный если он есть - этот пакет ?
@HINCO38
@HINCO38 9 ай бұрын
На сайте написано что входит в бесплатную версию а что в платную
@blockycars1482
@blockycars1482 4 жыл бұрын
А это работает отдаленно? Например захотелось сыграть с другом, но он в другом городе? Или это просто локальная сеть?
@EmeraldPowder
@EmeraldPowder 4 жыл бұрын
Да, фотон работает через свои сервера, там откуда угодно можно подключаться
@blockycars1482
@blockycars1482 4 жыл бұрын
@@EmeraldPowder спасибо за ответ, а могли бы вы показать, как сделать систему постройки машины как в игре blocky cars?
@Filimon_enc
@Filimon_enc 3 жыл бұрын
зачем тебе у плеера вектор 3 если ты в 2д работаешь
@prosto_chel544
@prosto_chel544 Жыл бұрын
А потом все сохраняется ? Топы и ТД после выхода
@mink_beautiful
@mink_beautiful 2 жыл бұрын
а можно ссылку на спрайты,пожалуйста
Я сделал онлайн игру за 24 часа!
13:01
Хауди Хо™ - Просто о мире IT!
Рет қаралды 288 М.
I wish I could change THIS fast! 🤣
00:33
America's Got Talent
Рет қаралды 91 МЛН
Жайдарман | Туған күн 2024 | Алматы
2:22:55
Jaidarman OFFICIAL / JCI
Рет қаралды 1,5 МЛН
Мы никогда не были так напуганы!
00:15
Аришнев
Рет қаралды 4,6 МЛН
Всё про корутины в Unity 3D
13:18
Emerald Powder
Рет қаралды 99 М.
ИГРА за 1 МИНУТУ vs 1 ЧАС vs 1 ДЕНЬ
4:04
dettt222
Рет қаралды 26 М.
🎲 Как работает Random в играх
8:45
Emerald Powder
Рет қаралды 137 М.
Следы от шин на снегу в Unity 3D [Tutorial]
23:46
Emerald Powder
Рет қаралды 63 М.
Get Started with Photon & Unity: Clients, RPCs, and More!
35:34
2D Инвентарь в Unity - легко
13:10
Graphical Design
Рет қаралды 52 М.
I wish I could change THIS fast! 🤣
00:33
America's Got Talent
Рет қаралды 91 МЛН