2 камеры в мультиплеере

Сеть в Unity3D

2 камеры в мультиплеере

Сообщение Hash 06 апр 2011, 10:59

Добрый день, не могли бы вы мне помочь, тему в форуме не нашёл, поэтому решил написать новую

По примерам сделал мультиплеер с кубами: Хостишь сервер под браузером, под Юнити заходишь на сервер и появляются 2 куба, которую можно перемещать. Всё работает на ура, но есть 2 НО:

Как сделать 2 камеры? Т.е. у меня игра от первого лица, а если я закидываю префаб в скрипт мультиплеера, где находится сама модель игрока и камера, то он не создаёт 2 камеры и 2 игрока,а управляет только 1. Т.е. и хост и клиент управляет 1 персонажем. Использую First Person Controller.

И как сделать обновление экрана. При подключении к хосту мне нужно переключится на др. вкладку и обратно, чтобы увидеть что клиент подключился и экран обновился.

Возможно не совсем корректно описал проблему, надеюсь на понимание :)

Спасибо
Hash
UNIт
 
Сообщения: 61
Зарегистрирован: 06 апр 2011, 09:24

Re: 2 камеры в мультиплеере

Сообщение WhiteDevil 06 апр 2011, 11:10

viewtopic.php?f=18&t=3718&p=31087#p31087

Про обновление не совсем понятно. Перемещайте камеру чтоле
Последний раз редактировалось WhiteDevil 06 апр 2011, 11:12, всего редактировалось 1 раз.
Аватара пользователя
WhiteDevil
UNIверсал
 
Сообщения: 455
Зарегистрирован: 19 дек 2010, 15:55

Re: 2 камеры в мультиплеере

Сообщение Neodrop 06 апр 2011, 11:11

Может быть стоит сперва изучить Networking Example ? :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: 2 камеры в мультиплеере

Сообщение Hash 06 апр 2011, 11:24

WhiteDevil писал(а):http://unity3d.ru/distribution/viewtopic.php?f=18&t=3718&p=31087#p31087

Про обновление не совсем понятно. Перемещайте камеру чтоле



Я когда писал пробник с 2 кубами всё ок было, каждый пользователь управлял своим кубом. Но камера 1 была. Сейчас же мне нужно реализовать 2 камеры, чтобы 1 пользователь управлял 1-ой камерой, а 2-ой второй камерой.
Вместо этого у меня сейчас оба пользователя управляют 1 камерой)))


Обновление: когда я подключился к серверу ничего не происходит, всё как было, мне приходится сворачивать браузер и снова открывать чтобы увидеть изменения. Нету обновления экрана после коннекта.
Hash
UNIт
 
Сообщения: 61
Зарегистрирован: 06 апр 2011, 09:24

Re: 2 камеры в мультиплеере

Сообщение Hash 06 апр 2011, 11:25

Neodrop писал(а):Может быть стоит сперва изучить Networking Example ? :-?



Я не столь ленивый как вы думаете, осложняется в понимание чужого кода
Hash
UNIт
 
Сообщения: 61
Зарегистрирован: 06 апр 2011, 09:24

Re: 2 камеры в мультиплеере

Сообщение WhiteDevil 06 апр 2011, 11:39

На самом деле у вас 4 камеры. Так как вы на каждой стороне (клиент\сервер), создаете по 2 префаба, каждый из которых имеет свою камеру.
Что вам нужно сделать, так это вытащить камеру из префаба. И атачить ее только собственному префабу. Для этого используете условие, которое я уже вам дал (на кубе должен висеть networkView).
Атачивание происходит так: Camera.main.transform.parent = cubeObject.transform.
Ставите эту строчку в то условие, и произойдет фильтр - префаб другой стороны себе камеру не приатачит.
И этим условием пользуйтесь каждый раз, когда требуется отсеивать управление объектом. Например когда будете им двигать
Аватара пользователя
WhiteDevil
UNIверсал
 
Сообщения: 455
Зарегистрирован: 19 дек 2010, 15:55

Re: 2 камеры в мультиплеере

Сообщение Hash 06 апр 2011, 12:18

Не много не понял. Не могли бы вы на примере?

Синтаксис:
Используется javascript
function OnGUI()
{
        if (GUI.Button (new Rect(10,50,100,30),"Start Server"))
        {
                var useNat = !Network.HavePublicAddress();
            Network.InitializeServer(32, 25003, useNat);
            for (var go : GameObject in FindObjectsOfType(GameObject))
                {
                        go.SendMessage("OnNetworkLoadedLevel",
                        SendMessageOptions.DontRequireReceiver);
                }
        }

        if (GUI.Button (new Rect(10,10,100,30),"Connect"))
        {
                useNat = !Network.HavePublicAddress();
                Network.Connect("178.22.51.124", 25003);
        }
}

function OnConnectedToServer()
{
        Debug.Log("Connect!!!");
}
 



Синтаксис:
Используется javascript
var Player : Transform;

function OnConnectedToServer()
{              
        Network.Instantiate(Player, transform.position, transform.rotation, 0);
}

function OnPlayerDisconnected (player : NetworkPlayer)
{
        Network.RemoveRPCs(player, 0);
        Network.DestroyPlayerObjects(player);
}
 
Hash
UNIт
 
Сообщения: 61
Зарегистрирован: 06 апр 2011, 09:24

Re: 2 камеры в мультиплеере

Сообщение WhiteDevil 06 апр 2011, 12:27

Могу :)
Атачим камеру
Синтаксис:
Используется javascript
var object : Transform;

function OnNetworkLoadedLevel () {

        var t : Transform = Network.Instantiate(object, transform.position, transform.rotation, 0) ;

        if (t.gameObject.networkView.isMine) {
                Camera.main.transform.parent = t;
        }
}
Аватара пользователя
WhiteDevil
UNIверсал
 
Сообщения: 455
Зарегистрирован: 19 дек 2010, 15:55


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2