Камера в мультиплеере.
|
|
Adom | Дата: Понедельник, 05 Августа 2013, 14:25 | Сообщение # 1 |
Печенька!
Сейчас нет на сайте
| Я сделал мультиплеер но вот появилась проблема у меня и клиента все время дергается камера.И я не знаю как это решить может вы поможете ?
|
|
| |
Левша | Дата: Понедельник, 05 Августа 2013, 20:53 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| Интерполяцией.
X.cor.R (Prologue)
|
|
| |
Alastar | Дата: Понедельник, 05 Августа 2013, 21:03 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Снять с камеры NetworkView
Big Boobs (+18 only!)
|
|
| |
Adom | Дата: Понедельник, 05 Августа 2013, 21:05 | Сообщение # 4 |
Печенька!
Сейчас нет на сайте
| Alastar,Я даже не ставил это. Добавлено (05.08.2013, 21:05) --------------------------------------------- И у меня еще один вопрос правильно ли я сделал управление для игры по мультиплееру ? Код using UnityEngine; using System.Collections;
public class ControllerD : MonoBehaviour { public Transform Player; // Use this for initialization void Start () { } void Awake(){ if (!networkView.isMine){ enabled = true; } } // Update is called once per frame void Update () { if (networkView.isMine){ if(Input.GetKey(KeyCode.W)){ Player.Translate(0,0,1 *1); } // if (networkView.isMine){ if(Input.GetKey(KeyCode.S)){ Player.Translate(0,0,-1 *1); } // if (networkView.isMine){ if(Input.GetKey(KeyCode.D)){ Player.Translate(1,0,0 *1); } // if (networkView.isMine){ if(Input.GetKey(KeyCode.A)){ Player.Translate(-1,0,0 *1); } if (networkView.isMine){ if(Input.GetKey(KeyCode.Space)){ Player.Translate(0,1,0 *1); } } } } } } } }
|
|
| |
Alastar | Дата: Понедельник, 05 Августа 2013, 21:09 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Adom, тогда у тебя в чем то другом проблема, ибо дергание в мультиплеери вызывает отсутствие интерполяции.
Big Boobs (+18 only!)
|
|
| |
Adom | Дата: Понедельник, 05 Августа 2013, 21:14 | Сообщение # 6 |
Печенька!
Сейчас нет на сайте
| блин тогда не знаю у меня там кубики )) И у каждого физика и своя камера и управление. Добавлено (05.08.2013, 21:14) --------------------------------------------- И помоги с управлением в мультиплеере я не знаю правильно ли сделал )
|
|
| |
EchoIT | Дата: Понедельник, 05 Августа 2013, 22:20 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Adom, сделал вроде правильно, но, ИМХО, это не лучшее решение.
Долгожданный анонсик: State of War
|
|
| |
allods | Дата: Вторник, 06 Августа 2013, 04:48 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| а нафига столько if (networkView.isMine){ ?
там один засунуть
|
|
| |
Adom | Дата: Вторник, 06 Августа 2013, 11:21 | Сообщение # 9 |
Печенька!
Сейчас нет на сайте
| allods,,Я думал что перед всеми нажатиями нужно проверять.)) Добавлено (06.08.2013, 11:21) --------------------------------------------- EchoIT,А какой лучшее решение на твой взгляд ?
|
|
| |
allods | Дата: Вторник, 06 Августа 2013, 17:58 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
|
Ну проверять одним if (networkView.isMine){ который под void Update () { и окутывает все что в нем есть, он и так будет проверять свой ли нетворк вивер или нет
|
|
| |
EchoIT | Дата: Вторник, 06 Августа 2013, 18:28 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Adom, во-первых, слишком много ифов, когда можно использовать один, во-вторых, транслейт вряд ли будет нормально работать...
Долгожданный анонсик: State of War
|
|
| |
Adom | Дата: Вторник, 06 Августа 2013, 18:34 | Сообщение # 12 |
Печенька!
Сейчас нет на сайте
| Эмм наверное проблема в Translate когда ко мне подключается игрок то его выкидывает вверх а у меня все дергаеться показываеться то его вид из камеры то мой вид.Не знаю что делать помогите ? EchoIT,И как это исправить чтобы работало в мультиплеере ?
|
|
| |
EchoIT | Дата: Вторник, 06 Августа 2013, 19:22 | Сообщение # 13 |
старожил
Сейчас нет на сайте
| Adom, замени транслейт на transform.position+=transform.forward и аналогичные, настроив нужную скорость. Получится то же самое, в принципе, но ты попробуй.
Долгожданный анонсик: State of War
|
|
| |
Adom | Дата: Вторник, 06 Августа 2013, 19:25 | Сообщение # 14 |
Печенька!
Сейчас нет на сайте
| EchoIT,Ага вот а это поможет с проблемой управления ?
|
|
| |
EchoIT | Дата: Вторник, 06 Августа 2013, 19:37 | Сообщение # 15 |
старожил
Сейчас нет на сайте
| Цитата EchoIT,Ага вот а это поможет с проблемой управления ? Ам, у тебя же вроде не было проблем с управлением?
Цитата то его вид из камеры то мой вид. Отключай все камеры, кроме своей при подключении. Profit.
Цитата то его выкидывает вверх Скорее всего, он у тебя спавнится в коллайдере, или в тебе, и, как следствие, выталкивается оттуда.
Долгожданный анонсик: State of War
|
|
| |
Adom | Дата: Вторник, 06 Августа 2013, 19:41 | Сообщение # 16 |
Печенька!
Сейчас нет на сайте
| А да у меня спавн в одном месте и как сделать чтобы его не выкидывало?И я не пойму с transform.position+=transform.forward сделать движение вправо.И извини за мою глупость )))
|
|
| |
EchoIT | Дата: Вторник, 06 Августа 2013, 19:49 | Сообщение # 17 |
старожил
Сейчас нет на сайте
| Цитата как сделать чтобы его не выкидывало Random.Range или несколько спавн-поинтов. Цитата И я не пойму с transform.position+=transform.forward transform.position+=transform.forward; //вперёд transform.position-=transform.forward; //назад transform.position+=transform.right; //вправо transform.position-=transform.right; //влево.
Конечно, это тоже далеко не лучший вариант и зачем тебе вообще такое движение, когда есть Character Controller - я не понимаю.
Долгожданный анонсик: State of War
|
|
| |
Левша | Дата: Вторник, 06 Августа 2013, 20:29 | Сообщение # 18 |
почти ветеран
Сейчас нет на сайте
| Цитата (Adom) И я не пойму как c transform.position+=transform.forward сделать движение вправо.
Код transform.position += (transform.forward + transform.right);
Цитата (EchoIT) зачем тебе вообще такое движение, когда есть Character Controller
X.cor.R (Prologue)
Сообщение отредактировал Левша - Вторник, 06 Августа 2013, 20:30 |
|
| |
Adom | Дата: Вторник, 06 Августа 2013, 21:05 | Сообщение # 19 |
Печенька!
Сейчас нет на сайте
| Все теперь я знаю в чем проблема проблема в камере Она у меня дергаеться и из-за этого мы не можем нормально играть
|
|
| |
EchoIT | Дата: Среда, 07 Августа 2013, 22:44 | Сообщение # 20 |
старожил
Сейчас нет на сайте
| Цитата transform.position += (transform.forward + transform.right); Это же будет вперёд-вправо, а не просто вправо... Цитата Все теперь я знаю в чем проблема проблема в камере Она у меня дергаеться и из-за этого мы не можем нормально играть На счёт камеры я тебе уже сказал решение. Если не понял - на клиенте пилишь что-то типа: Код foreach (Transform cam in cameras) { if (!cam.networkView.isMine) cam.camera.enabled=false; } Где cameras - массив трансформов всех камер. А для того, чтобы камеры новоподключившихся игроков не портили всё - лучше пойти от противного: изначально камера на объекте игрока отключена и включать её только если networkView.isMine верно.
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Среда, 07 Августа 2013, 22:47 |
|
| |