Пятница, 29 Марта 2024, 18:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Камера в мультиплеере.
Камера в мультиплеере.
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
почти ветеран
Сейчас нет на сайте
Цитата (Adom)
Adom


Ну проверять одним 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);


biggrin

Цитата (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);

Это же будет вперёд-вправо, а не просто вправо... biggrin
Цитата
Все теперь я знаю в чем проблема проблема в камере Она у меня дергаеться и из-за этого мы не можем нормально играть

На счёт камеры я тебе уже сказал решение. Если не понял - на клиенте пилишь что-то типа:
Код
foreach (Transform cam in cameras) {
    if (!cam.networkView.isMine) cam.camera.enabled=false;
}

Где cameras - массив трансформов всех камер. А для того, чтобы камеры новоподключившихся игроков не портили всё - лучше пойти от противного: изначально камера на объекте игрока отключена и включать её только если networkView.isMine верно. smile


Долгожданный анонсик: State of War

Сообщение отредактировал EchoIT - Среда, 07 Августа 2013, 22:47
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Камера в мультиплеере.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг