регистрация enemy и назначение ему своего unetid

Сеть в Unity3D

регистрация enemy и назначение ему своего unetid

Сообщение elf01 21 янв 2018, 16:34

Ребят, ситуация такая, что не могу никак зарегистрировать enemy так, чтобы у него был свой unetid.
То есть игроков обычных я скажем регистрирую и понимаю что у них будет свой unetid, вот так.
Синтаксис:
Используется csharp
#region Player tracking

        private const string PLAYER_ID_PREFIX = "Player ";

    private static Dictionary<string, Player> players = new Dictionary<string, Player>();

    public static void RegisterPlayer (string _netID, Player _player)
    {
        string _playerID = PLAYER_ID_PREFIX + _netID;
        players.Add(_playerID, _player);
        _player.transform.name = _playerID;
    }

    public static void UnRegisterPlayer (string _playerID)
    {
        players.Remove(_playerID);
    }

    public static Player GetPlayer (string _playerID)
    {
        return players[_playerID];
    }
 


Пытаюсь как бы стандартно зарегистрировать enemy, но он получает observers такой же как скажем у Player1.
Синтаксис:
Используется csharp
      var player = (GameObject)GameObject.Instantiate(monst, SpawnPos.transform.position, Quaternion.identity);
      NetworkServer.Spawn(player);
      player.transform.name = "Monster";
 


Просто после у меня возникает проблема, что скажем я бью enemy и пытаюсь передать ему урон. То возникает ошибка в строчке с упоминанием GameManager.GetPlayer(_playerID);
Синтаксис:
Используется csharp
[Command]
        void CmdPlayerShot (string _playerID, int _damage, string _sourceID)
        {
        Player _player = GameManager.GetPlayer(_playerID);
        _player.RpcTakeDamage(_damage, _sourceID);
        }
 


То есть я так понял, что он не нашел его.
elf01
UNIверсал
 
Сообщения: 370
Зарегистрирован: 07 июл 2013, 08:59

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2