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); }
// 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); }