Среда, 13 Ноября 2024, 12:39

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
kelodДата: Пятница, 29 Марта 2013, 17:32 | Сообщение # 1 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Kira)
kelod, интересный сайт
Там внизу меню есть. Правда флеш, но не суть.

спасибо, про интерполяцию и синхронизацию действительно интересно и полезно, вот только про контроллер я там ничего не нашёл((
kelodДата: Пятница, 29 Марта 2013, 12:59 | Сообщение # 2 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Левша)
Написать то не сложно... потом возникнет проблема с интерполяцией движения и тд...
Надо себе четко представлять что сингл контроллеры и контроллеры для мультиплеера это абсолютно разная архитектура и подход.

подскажите где можно про контроллеры для мультиплеера почитать?? желательно на русском и с примерами
интерполяция это конечно проблема, но если будут небольшие скачки, это на данном этапе для меня не очень страшно, я в любом случае понимаю что в последствии много переделывать нужно будет
kelodДата: Пятница, 29 Марта 2013, 12:02 | Сообщение # 3 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Левша)
Цитата (kelod)
а объект накинут контроллер

Какой контроллер ?
Цитата (kelod)
всё управляется стандартными контроллерами

Они написаны под сингл, зачем их переделывать, когда проще для серверного управления с нуля сразу написать....

контроллер любой например CharacterController или CharacterMotor
свой писать это тоже не вариант, там же много всяких плюшек, плавное движение и остановка, скольжение и много много чего, неужеле очень сложно передать контроллеру команду управления?
kelodДата: Четверг, 28 Марта 2013, 21:14 | Сообщение # 4 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Kira)
Transform.Translate почему нет?
это все валяется в справке.
Код

function Update() {
     // Move the object forward along its z axis 1 unit/second.
     transform.Translate(Vector3.forward * Time.deltaTime);

     // Move the object upward in world space 1 unit/second.
     transform.Translate(Vector3.up * Time.deltaTime, Space.World);
}

Кабы работа с сетью подразумевает умелого человека.
Тогда мне просто не чем помочь.
Цитата (kelod)
ппц умные все такие, ну что же объясняю подробнее, раз на простой вопрос ответить не хотим

ответили же.
А плавное ускорение это уж сами, как минимум в контролере валяется. Что мешает скопипастить?


во-первых тогда уж не Update а FixedUpdate, а во-вторых вы всегда пишите для одного и того же действия разные функции?? когда меня программированию учили в далёкие времена по ушам не один раз давали за копипаст
kelodДата: Четверг, 28 Марта 2013, 20:49 | Сообщение # 5 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Kira)
kelod, ну причем тут нажатие клавиш?
Не понимаю, писать сервер и не понимать простой сути.

Делаешь так:
Весь код который при нажатии вперед перемещаешь в функцию Forward();
И за место него вызываешь этот код.
Теперь при команде от сервера вперед, вызываешь туже самую функцию. Все элементарно.

ппц умные все такие, ну что же объясняю подробнее, раз на простой вопрос ответить не хотим
есть сцена, в ней персонаж, которым можем управлять с клавиатуры, наживаем например кнопку вперёд, чел идёт вперёд и одновременно с этим на сервер отправляются координаты игрока и направление куда он должен идти, сервер получает эти данные и пересылает их другим игрокам, у другого игрока есть обьект, точно такой же как и у игрока нажавшего кнопку на клаве, вот у второго игрока мне и нужно управлять объектом, т.е. у меня есть координата, откуда идти, направление куда идти, но как заставить идти бота я не понимаю, в этом и вопрос, нужно сделать что бы для этого бота выполнилось какое то действие, аналогичное нажатию кнопки клавиатуры, что бы он пошёл

и нет у меня самописного кода, всё управляется стандартными контроллерами


Сообщение отредактировал kelod - Четверг, 28 Марта 2013, 20:50
kelodДата: Четверг, 28 Марта 2013, 19:52 | Сообщение # 6 | Тема: character controller
был не раз
Сейчас нет на сайте
Цитата (Kira)
Скажем так решение через одно место.
Transform.Translate вам в помощь.

если бы ло бы всё так просто, я бы вопрос не задавал, у меня приходит команда от сервера идти вперёд, т.е. как будто другой игрок нажал кнопку и мне нужно чтобы бой бот двигался точно так же как при нажатии кнопки, с плавным ускорением и остановкой, вообщем всё как в стандартном контроллере
kelodДата: Четверг, 28 Марта 2013, 19:01 | Сообщение # 7 | Тема: character controller
был не раз
Сейчас нет на сайте
как эмитировать нажатие клавиш? т.е. на объект накинут контроллер, как его программно заставить двигаться?
kelodДата: Среда, 27 Марта 2013, 14:30 | Сообщение # 8 | Тема: организация мультиплеера
был не раз
Сейчас нет на сайте
есть сервер и есть клиенты на юнити, как организовать движение игрока, желательно всё событиями, с выстрелом я понимаю как, а с движением и поворотами нет
PS: язык разработки C#
kelodДата: Понедельник, 25 Марта 2013, 01:46 | Сообщение # 9 | Тема: Photon server + Unity рассылка
был не раз
Сейчас нет на сайте
Цитата (Povstalez)
Разница в том что Операции отправляются с клиента на сервер и отсылаются обратно. События же отправляются в 1 сторону.

хорошо, а как мне получить список пиров? и где мне указать пир что бы на него отправилось?
kelodДата: Воскресенье, 24 Марта 2013, 22:30 | Сообщение # 10 | Тема: Photon server + Unity рассылка
был не раз
Сейчас нет на сайте
Цитата (Povstalez)
Если ты об Event - он отправляется лишь 1 пиру.

а в чём разница между событиями и операциями тогда?
и кажется есть метод tosend у обьекта eventdata, только я не понимаю что он от меня хочет
kelodДата: Воскресенье, 24 Марта 2013, 22:22 | Сообщение # 11 | Тема: Photon server + Unity рассылка
был не раз
Сейчас нет на сайте
Цитата (Povstalez)
заноси в массив всех пиров. Потом через цикл посылай сообщения.

у фотона кажется есть возможность отправлять события всем, я только не понимаю как
kelodДата: Воскресенье, 24 Марта 2013, 21:19 | Сообщение # 12 | Тема: Photon server + Unity рассылка
был не раз
Сейчас нет на сайте
вопрос собственно в следующем, как можно организовать рассылку всем клиентам сообщения с сервера?
kelodДата: Среда, 20 Февраля 2013, 20:29 | Сообщение # 13 | Тема: взаимодействие двух серверов
был не раз
Сейчас нет на сайте
пытаюсь писать онлайн игру, структура такова:
игра состоит из меню и собственно комнат, где игроки играют, соответственно за работу меню отвечает один сервер, за работу игровой комнаты другой, вопрос как обмениваться данными между этими серверами?
в качестве серверов использую Photon, код написан на C# клиент Unity, код тоже на шарпе

собственно сами сервера состоит из двух классов и по сути будут аналогичные, различающиеся только обрабатываемыми данными :

класс PhotonServer
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net.Config;
using Photon.SocketServer;
using System.IO;

namespace PhotonGame
{
  public class PhotonServer : ApplicationBase
  {

   protected override PeerBase CreatePeer(InitRequest initRequest)
   {
    //throw new NotImplementedException();
    return new UnityClient(initRequest.Protocol, initRequest.PhotonPeer);
   }
   protected override void Setup()
   {

    var file = new FileInfo(Path.Combine(BinaryPath, "log4net.config"));
    if (file.Exists)
    {
     LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
     XmlConfigurator.ConfigureAndWatch(file);
    }
   }
   protected override void TearDown()
   {
   }
  }
}

класс UnityClient
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Photon.SocketServer;
using ExitGames.Logging;
using PhotonHostRuntimeInterfaces;
//using MySql.Data.MySqlClient;
using System.Collections;

namespace PhotonGame
{
  public class UnityClient : PeerBase
  {
   private readonly ILogger Log = LogManager.GetCurrentClassLogger();
   public UnityClient(IRpcProtocol protocol, IPhotonPeer peer)
    : base(protocol, peer)
   {
    Log.Debug("Connection:" + peer.GetRemoteIP());
   }
   protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail)
   {
    Log.Debug("Disconnected");
   }

   protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
   {
    Log.Debug("Unknown operation");
   }
  }
}

Добавлено (18.02.2013, 13:48)
---------------------------------------------
и не одного ответа....

Добавлено (20.02.2013, 20:29)
---------------------------------------------
да уж гуру видно от зимней спячки не очнулись ещё....

  • Страница 1 из 1
  • 1
Поиск:

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