public override bool OnRebuildObservers(HashSet <NetworkConnection> observers, bool initial) { bool result; if (this.forceHidden) { NetworkIdentity component = base.GetComponent <NetworkIdentity>(); if (component.connectionToClient != null) { observers.Add(component.connectionToClient); } result = true; } else { NetworkProximityChecker.CheckMethod checkMethod = this.checkMethod; if (checkMethod != NetworkProximityChecker.CheckMethod.Physics3D) { if (checkMethod != NetworkProximityChecker.CheckMethod.Physics2D) { result = false; } else { foreach (Collider2D collider2D in Physics2D.OverlapCircleAll(base.transform.position, (float)this.visRange)) { NetworkIdentity component2 = collider2D.GetComponent <NetworkIdentity>(); if (component2 != null && component2.connectionToClient != null) { observers.Add(component2.connectionToClient); } } result = true; } } else { foreach (Collider collider in Physics.OverlapSphere(base.transform.position, (float)this.visRange)) { NetworkIdentity component3 = collider.GetComponent <NetworkIdentity>(); if (component3 != null && component3.connectionToClient != null) { observers.Add(component3.connectionToClient); } } result = true; } } return(result); }
public override bool OnRebuildObservers(HashSet <NetworkConnection> observers, bool initial) { if (this.forceHidden) { NetworkIdentity component = base.GetComponent <NetworkIdentity>(); if (component.connectionToClient != null) { observers.Add(component.connectionToClient); } return(true); } NetworkProximityChecker.CheckMethod checkMethod = this.checkMethod; if (checkMethod == NetworkProximityChecker.CheckMethod.Physics3D) { Collider[] array = Physics.OverlapSphere(base.transform.position, (float)this.visRange); Collider[] array2 = array; for (int i = 0; i < array2.Length; i++) { Collider collider = array2[i]; NetworkIdentity component2 = collider.GetComponent <NetworkIdentity>(); if (component2 != null && component2.connectionToClient != null) { observers.Add(component2.connectionToClient); } } return(true); } if (checkMethod != NetworkProximityChecker.CheckMethod.Physics2D) { return(false); } Collider2D[] array3 = Physics2D.OverlapCircleAll(base.transform.position, (float)this.visRange); Collider2D[] array4 = array3; for (int j = 0; j < array4.Length; j++) { Collider2D collider2D = array4[j]; NetworkIdentity component3 = collider2D.GetComponent <NetworkIdentity>(); if (component3 != null && component3.connectionToClient != null) { observers.Add(component3.connectionToClient); } } return(true); }