scripts
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UnityEngine.Networking
|
||||
{
|
||||
// Token: 0x02000053 RID: 83
|
||||
[AddComponentMenu("Network/NetworkProximityChecker")]
|
||||
[RequireComponent(typeof(NetworkIdentity))]
|
||||
public class NetworkProximityChecker : NetworkBehaviour
|
||||
{
|
||||
// Token: 0x0600036C RID: 876 RVA: 0x00013AB0 File Offset: 0x00011CB0
|
||||
private void Update()
|
||||
{
|
||||
if (NetworkServer.active)
|
||||
{
|
||||
if (Time.time - this.m_VisUpdateTime > this.visUpdateInterval)
|
||||
{
|
||||
base.GetComponent<NetworkIdentity>().RebuildObservers(false);
|
||||
this.m_VisUpdateTime = Time.time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600036D RID: 877 RVA: 0x00013B00 File Offset: 0x00011D00
|
||||
public override bool OnCheckObserver(NetworkConnection newObserver)
|
||||
{
|
||||
bool flag;
|
||||
if (this.forceHidden)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
GameObject gameObject = null;
|
||||
for (int i = 0; i < newObserver.playerControllers.Count; i++)
|
||||
{
|
||||
PlayerController playerController = newObserver.playerControllers[i];
|
||||
if (playerController != null && playerController.gameObject != null)
|
||||
{
|
||||
gameObject = playerController.gameObject;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gameObject == null)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector3 position = gameObject.transform.position;
|
||||
flag = (position - base.transform.position).magnitude < (float)this.visRange;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600036E RID: 878 RVA: 0x00013BBC File Offset: 0x00011DBC
|
||||
public override bool OnRebuildObservers(HashSet<NetworkConnection> observers, bool initial)
|
||||
{
|
||||
bool flag;
|
||||
if (this.forceHidden)
|
||||
{
|
||||
NetworkIdentity component = base.GetComponent<NetworkIdentity>();
|
||||
if (component.connectionToClient != null)
|
||||
{
|
||||
observers.Add(component.connectionToClient);
|
||||
}
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
NetworkProximityChecker.CheckMethod checkMethod = this.checkMethod;
|
||||
if (checkMethod != NetworkProximityChecker.CheckMethod.Physics3D)
|
||||
{
|
||||
if (checkMethod != NetworkProximityChecker.CheckMethod.Physics2D)
|
||||
{
|
||||
flag = 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);
|
||||
}
|
||||
}
|
||||
flag = 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);
|
||||
}
|
||||
}
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600036F RID: 879 RVA: 0x00013D0B File Offset: 0x00011F0B
|
||||
public override void OnSetLocalVisibility(bool vis)
|
||||
{
|
||||
NetworkProximityChecker.SetVis(base.gameObject, vis);
|
||||
}
|
||||
|
||||
// Token: 0x06000370 RID: 880 RVA: 0x00013D1C File Offset: 0x00011F1C
|
||||
private static void SetVis(GameObject go, bool vis)
|
||||
{
|
||||
foreach (Renderer renderer in go.GetComponents<Renderer>())
|
||||
{
|
||||
renderer.enabled = vis;
|
||||
}
|
||||
for (int j = 0; j < go.transform.childCount; j++)
|
||||
{
|
||||
Transform child = go.transform.GetChild(j);
|
||||
NetworkProximityChecker.SetVis(child.gameObject, vis);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001A6 RID: 422
|
||||
public int visRange = 10;
|
||||
|
||||
// Token: 0x040001A7 RID: 423
|
||||
public float visUpdateInterval = 1f;
|
||||
|
||||
// Token: 0x040001A8 RID: 424
|
||||
public NetworkProximityChecker.CheckMethod checkMethod = NetworkProximityChecker.CheckMethod.Physics3D;
|
||||
|
||||
// Token: 0x040001A9 RID: 425
|
||||
public bool forceHidden = false;
|
||||
|
||||
// Token: 0x040001AA RID: 426
|
||||
private float m_VisUpdateTime;
|
||||
|
||||
// Token: 0x02000054 RID: 84
|
||||
public enum CheckMethod
|
||||
{
|
||||
// Token: 0x040001AC RID: 428
|
||||
Physics3D,
|
||||
// Token: 0x040001AD RID: 429
|
||||
Physics2D
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user