Unity3d - сеть (M2H_2B)
Как ясно из названия - я собираюсь показать работу с сетью на основе примера (M2H_2B).
Я перевел три скрипта, необходимых для сборки сетевого приложения, на C# и следовательно тема в нужном разделе. Итак: 1. Скрипт подключения к сети "Connect.cs": PHP код:
2. Скрипт игрока "PlayerScript.cs": PHP код:
3. Скрипт создающий игроков при подключении и удалящий при отключении "SpawnScript.cs": PHP код:
Сборка сцены:
Данный пример демонстрирует работу сети где сервер НЕ рулит :) Заметки: камера сейчас одна и будет у каждого игрока в том месте, где она установлена с самого начала. Я думаю (не проверял), что для этого в скрипте PlayerScript в методе Awake, если созданный игрок принадлежит текущему сетевому игроку, нужно ее создать и привязать к этому префабу. PS: вообще я не собирал эту сцену, я только перевел скрипты на C# и написал порядок сборки ;) но должно работать) |
Ответ: Unity3d - сеть (M2H_2B)
рах, в M2H есть пример под названием lobby. Он использует мастер сервер. И вот когда создаёш игру, игра переключается на пустую сцену с обной кнопкой-дисконект. Немог бы ты рассказать как поместить в эту игровую сцену кубики, чтоб тоже были с управление и со своей камерой . Чтоб при подключении у игрока создовался кубик, а при дисконекте удалялся.
Думую всем юнитистам этого форума будет полезно услышать это:) ---------------------------------------------------------------------- ---------------------------------------------------------------------- Цитата:
|
Ответ: Unity3d - сеть (M2H_2B)
Цитата:
|
Ответ: Unity3d - сеть (M2H_2B)
Вот сделал сетевую игру (точнее изменил пример, вытащил из каждого примера самое лучьшее и соеденил) -------> игра
прошу по тестить. Вначале вписываем своё имя. Нажимаем Save. Нажимаем Host a game (это штоб стать сервером, создать игру, комнату) Или нажимаем Select a game to join (это штоб стать клиентом, подключится к чюжой игре, комнате). 3 кнопка это подключится к рандомной игре, а если их нет то создать свою. Если вы сервер- вписываем все данные о игре (пароль не надо вписывать) и нажимаем Go to lobby.Если вы клиент-выбираем игру, нажимаем напротив неё кнопка коннект.Справа блок с айпи, портом, натом-его не надо трогать. Далее играем! Если хотите потестить толпой-напишите сдесь-определим кто будет сервером, и во сколькл играть будем. ----------------------------------- В игре помойму глюк с именами над кубиками...((( |
Ответ: Unity3d - сеть (M2H_2B)
Продублирую я тут ответ по поводу сети, чтобы не искать потом:
Цитата:
PHP код:
|
Ответ: Unity3d - сеть (M2H_2B)
Очень интересно,а можно ли это реализовать не на браузерной основе?
Den что то не получается законнектиться,но все равно спасибо вам двоим,буду осуществлять онлайн режим для игры |
Ответ: Unity3d - сеть (M2H_2B)
Den, не получилось законнектиться на сервер, который я создал - Failed to connect!
А можно ли в Unity сделать мультиплеер через веб-сервер (как WOW например)? Что почитать по это теме посоветуйте? :) |
Ответ: Unity3d - сеть (M2H_2B)
Либо писать свой сервер на System.Net (хорошая статья), либо покупать чье-то серверное решение (гугли ES5, Exitgames Photon, Crystal Engine и т.д.).
|
Ответ: Unity3d - сеть (M2H_2B)
Всем привет. Пожалуйста объясните подробно как сделать что если игрок твой, то есть управляешь им ты, то объект круг. А если не ты то куб. Всю ночь мучался нечего не вышло.
|
Ответ: Unity3d - сеть (M2H_2B)
Ну изменить скрипт игрока примерно так:
PHP код:
|
Ответ: Unity3d - сеть (M2H_2B)
Еще один вариант - префаб игрока - пустышка, управляющая создаваемыми им моделями.
PHP код:
|
Ответ: Unity3d - сеть (M2H_2B)
пишет ошибку
|
Ответ: Unity3d - сеть (M2H_2B)
Could not open port for debugger. Another process may be using the port.
|
Ответ: Unity3d - сеть (M2H_2B)
Эм, что-то тут не так.
Цитата:
|
Ответ: Unity3d - сеть (M2H_2B)
Цитата:
|
Ответ: Unity3d - сеть (M2H_2B)
Трансформ( я не знал что скрипт можно )
|
Ответ: Unity3d - сеть (M2H_2B)
Для собственной сериализации надо указывать скрипт, выполняющий эту функцию.
|
Ответ: Unity3d - сеть (M2H_2B)
Есть небольшая проблема. Скрипт на C#. :
PHP код:
An object reference is required to access non-static member `UnityEngine.NetworkView.RPC(string, UnityEngine.RPCMode, params object[])' Я пока только учусь в документации найти ответ не получается. |
Ответ: Unity3d - сеть (M2H_2B)
Ты пытаешься обратиться к статическому методу RPC класса NetworkView, в то время как метод RPC не является статическим.
NetworkView - ссылка на класс (на нечто далекое и единое для всех). networkView - ссылка на объект (компонент) этого класса. При этом данный компонент и твой скрипт должны "висеть" на одном и том же GameObject'е. Иными словами, надо было "NetworkView.RPC" писать как "networkView.RPC" (с маленькой буквы). Вот и всё. :) |
Ответ: Unity3d - сеть (M2H_2B)
Спасибо! Так и сделал и все заработало :)
|
Ответ: Unity3d - сеть (M2H_2B)
Вот такой вопрос.
Кинул на свой префаб камеру и MouseLook и теперь получается создаю - я вижу от своего кубика и бегаю им, а если подключится 2-ой игрок то все наоборот - я управляю его, но вижу свой, а он управляет моим, но видит свой. В чем проблема? |
Ответ: Unity3d - сеть (M2H_2B)
Камера у обоих кубиков? Выключать надо камеры удаленных игроков.
|
Ответ: Unity3d - сеть (M2H_2B)
Вот префаб для игроков. Также пробовал использовать First Person Controller. Там еще хуже. |
Ответ: Unity3d - сеть (M2H_2B)
добавить куда-то
vois Start() { camera.enabled = networkView.isMine; } |
Ответ: Unity3d - сеть (M2H_2B)
Нашел интересную реализацию кооператива на облаке фотона. Основана она на AngryBots.
Вот на офф форуме: http://forum.unity3d.com/threads/104...ltiplayer-Coop В Ассет стори: http://u3d.as/content/exit-games/pho...-bots-demo/2i9 Ну и веб версия: http://www.wooglie.com/playgame.php?gameID=899 Возможно вы и видели уже это. Но все же. |
Ответ: Unity3d - сеть (M2H_2B)
Доброе время суток.
Скажите, а вы не планируете сделать урок по выделенному серверу (мастер сервер)? |
Ответ: Unity3d - сеть (M2H_2B)
Мастер сервер и выделенный сервер немного разные термины. Мастерсервер Unity сейчас использовать бессмысленно, потому что во многих случаях клиенты не могут становиться серверами (проблемы с NAT). В этом плане я советую использовать Photon Cloud, там есть свой мастерсервер (лоадбалансер) и он не имеет тех недостатков, какие имеет мастерсервер Unity. Уроков по этому поводу не будет, т.к. примеры есть в пакадже Photon Unity Networking
|
Ответ: Unity3d - сеть (M2H_2B)
Понятно... спасибо за ликбез:)
Правильно ли я понял, что если делать клиент-серверную игру, то клиент писать на Unity, а сервер на стороннем? Или на Unity все же возможно создать свой сервер? |
Ответ: Unity3d - сеть (M2H_2B)
Тут зависит что за клиент-сервер, если это только локальная сеть, то можно обойтись одной Unity. Если это онлайн приложение, то лучше использовать стороннее решение. Я не знаю ни одного онлайн приложения, которое бы использовало встроенную сеть Unity.
Сторонних решений на выбор много:
|
Ответ: Unity3d - сеть (M2H_2B)
еще раз спасибо:)
|
Ответ: Unity3d - сеть (M2H_2B)
Скажите, а то я совсем запутался:(
Серверная часть проекта на Unity должна содержать в себе игровые объекты или можно без них обойтись? Просто как то не понятно: Вот создаю 2 проекта, 1-сервер, 2-клиент Сервер запускается, клиенты подключаются, но когда клиент подключен не видны объекты других клиентов. Если это по вашему бред и лепет, сильно не пинайте:) |
Ответ: Unity3d - сеть (M2H_2B)
Все зависит от того, что требуется от сервера.
Есть хорошая статья, описывающая принципы сети в Source https://developer.valvesoftware.com/..._Networking:ru |
Ответ: Unity3d - сеть (M2H_2B)
Спасибо за статью, ушел читать:)
|
Ответ: Unity3d - сеть (M2H_2B)
Pax спасибо за статью, а для Android это подойдет?
Как расшифровывается M2H_2B? |
Ответ: Unity3d - сеть (M2H_2B)
Ответ можно найти тут, там вроде переведено полностью. Но я бы советовал не использовать текущую сеть. В Unity 5 будет новая сеть UNet. А текущая для онлайн проектов не подходит.
|
Ответ: Unity3d - сеть (M2H_2B)
Pax Чем плоха эта сеть и чем хороша UNET?
Можешь ли написать подобный туториал по UNET? |
Ответ: Unity3d - сеть (M2H_2B)
По UNET написать тутор не могу, не пользуюсь им. По поводу того, что луше, у меня другой вопрос: для каких целей сеть нужна?
|
Ответ: Unity3d - сеть (M2H_2B)
Для соединения двух или более устройств. С множеством синхронизируемых объектов ~500. Платформа Android. Игра жанра action.
Про Unet есть неплохой цикл англоязычных видеолекций... Но ничего разжеванного вроде простой статьи не нашел. |
Ответ: Unity3d - сеть (M2H_2B)
Если это планируется делать без интернета, то можно обойтись старой сетью вероятно. Можно так же использовать UNET на низком уровне.
|
Ответ: Unity3d - сеть (M2H_2B)
В принципе на андроиде все запустил... около 250-х объектов обрабатываются более менее нормально, можно еще сгладить дополнительно. В принципе UNET достаточно доступен если писать убийцу контерстрике и т.д. и т.п. Однако не понятно как с помощью UNET отправить сообщение например из сервера клиенту. С определением адреса сложно разобраться, кто под каким id. Пока темный лес.
|
Часовой пояс GMT +4, время: 02:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot