2016-03-25 5 views
0

Оружие - это дочерний объект объекта игрока, дочерний объект. Нельзя рассматривать оружие как часть объекта игрока, правильно? Таким образом, мне нужно использовать NetworkIdentity.AssignClientAuthority(), чтобы предоставить локальные полномочия не-игрового объекта.Как получить соединение, используемое в качестве параметра в NetworkIdentity.AssignClientAuthority

public class Weapon: NetworkBehaviour 
{ 
    void Start() 
    { 
     // how to get the conn? 
     GameObject.GetComponent<NetworkIdentity>().AssignClientAuthority(conn); 
    } 

    void Update() 
    { 
     CmdShot(); 
    } 

    [Command] 
    void CmdShot() 
    { 
     // shot... 
    } 
} 

ответ

0

Компонент NetworkIndentity должен быть в корневом игровом объекте, и он может иметь только один в сборнике.

Итак, только корневой игровой объект имеет ClientAuthority для отправки Command на сервер. У дочернего объекта в этом игровом объекте нет ClientAuthority.

И here больше о NetworkIndentity.

1

На стороне клиента вы можете получить соединение, используя NetworkClient.connection. На сервере список всех текущих активных соединений доступен в NetworkServer.connections. Оба содержат объект NetworkConnection, который используется как параметр для AssignClientAuthority.