public override void OnRebuildObservers(NetworkIdentity identity, HashSet <NetworkConnection> newObservers,
                                                bool initialize)
        {
            Guid matchId = identity.GetComponent <NetworkMatch>().matchId;

            // Guid.Empty is never a valid matchId
            if (matchId == Guid.Empty)
            {
                return;
            }

            if (!matchObjects.TryGetValue(matchId, out HashSet <NetworkIdentity> objects))
            {
                return;
            }

            // Add everything in the hashset for this object's current match
            foreach (NetworkIdentity networkIdentity in objects)
            {
                if (networkIdentity != null && networkIdentity.connectionToClient != null)
                {
                    newObservers.Add(networkIdentity.connectionToClient);
                }
            }
        }
        public override void OnSpawned(NetworkIdentity identity)
        {
            Guid currentMatch = identity.GetComponent <NetworkMatch>().matchId;

            lastObjectMatch[identity] = currentMatch;

            // Guid.Empty is never a valid matchId...do not add to matchObjects collection
            if (currentMatch == Guid.Empty)
            {
                return;
            }

            // Debug.Log($"MatchInterestManagement.OnSpawned({identity.name}) currentMatch: {currentMatch}");
            if (!matchObjects.TryGetValue(currentMatch, out HashSet <NetworkIdentity> objects))
            {
                objects = new HashSet <NetworkIdentity>();
                matchObjects.Add(currentMatch, objects);
            }

            objects.Add(identity);
        }
 public override bool OnCheckObserver(NetworkIdentity identity, NetworkConnection newObserver)
 {
     return(identity.GetComponent <NetworkMatch>().matchId ==
            newObserver.identity.GetComponent <NetworkMatch>().matchId);
 }
示例#4
0
        // helper function to get vis range for a given object, or default.
        int GetVisRange(NetworkIdentity identity)
        {
            DistanceInterestManagementCustomRange custom = identity.GetComponent <DistanceInterestManagementCustomRange>();

            return(custom != null ? custom.visRange : visRange);
        }