Четверг, 25 Апреля 2024, 02:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Unet (помо...)
Unet
allodsДата: Суббота, 08 Августа 2015, 16:26 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Я надеюсь есть тут люди которые ковыряются в новом Network который был добавлен а версии 5.1х

Есть патрон/снаряд/пуля/мячик который спавнится действием игрока. Он летит себе летит и тут попадает в объект

При спавне так же отсылается серверу действие, и на сервере и у все игроков он тоже спавнится.

Код
[Command]
  void CmdShoot(Vecto3 pos)
  {
       GameObject missil = Instantiate (missilPref,pos,Quaternion.identity) as GameObject ;
    NetworkServer.Spawn (missil);
}

< до этого момента все норм

Летит он себе летит и тут как я уже сказал залетает biggrin
При попадании в игрока он вызывает функцию урона
Если игрок является игроком то игрок рассылает всем аватаркам текущее состояние Здоровья

Код
public void doDamage(float dmg)
  {
   if(isLocalPlayer)
   {
    HP -= dmg;
    CmdsetHP(HP);
   }
  }


< Тут тоже все норм

Но проблема далее. Как отослать всем аватаркам снаряда что он попал в цель, должен проиграть Партиклю и удалиться со сцены.
Если снаряд хоста попал в игрока тут все просто простой [Command] работает, но если снаряд был от клиента то мы получим предупреждение что аватарка не может отсылать команды. C RPC тоже не катит. Снаряд является не аватаркой только тот что на сервере. Я хочу чтобы снаряд наносил урон только когда именно в игрока попал снаряд а не в его аватарку чувака который возможно лагает.
Так как в отправлять данны с аватарки на серверный обхект и на все аватарки других игроков
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Unet (помо...)
  • Страница 1 из 1
  • 1
Поиск:

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