using System; using System.ComponentModel; namespace UnityEngine.Networking { // Token: 0x02000063 RID: 99 [DisallowMultipleComponent] [AddComponentMenu("Network/NetworkTransformVisualizer")] [RequireComponent(typeof(NetworkTransform))] [EditorBrowsable(EditorBrowsableState.Never)] public class NetworkTransformVisualizer : NetworkBehaviour { // Token: 0x170000D9 RID: 217 // (get) Token: 0x060004E7 RID: 1255 RVA: 0x0001C814 File Offset: 0x0001AA14 // (set) Token: 0x060004E8 RID: 1256 RVA: 0x0001C82F File Offset: 0x0001AA2F public GameObject visualizerPrefab { get { return this.m_VisualizerPrefab; } set { this.m_VisualizerPrefab = value; } } // Token: 0x060004E9 RID: 1257 RVA: 0x0001C83C File Offset: 0x0001AA3C public override void OnStartClient() { if (this.m_VisualizerPrefab != null) { this.m_NetworkTransform = base.GetComponent(); NetworkTransformVisualizer.CreateLineMaterial(); this.m_Visualizer = Object.Instantiate(this.m_VisualizerPrefab, base.transform.position, Quaternion.identity); } } // Token: 0x060004EA RID: 1258 RVA: 0x0001C890 File Offset: 0x0001AA90 public override void OnStartLocalPlayer() { if (!(this.m_Visualizer == null)) { if (this.m_NetworkTransform.localPlayerAuthority || base.isServer) { Object.Destroy(this.m_Visualizer); } } } // Token: 0x060004EB RID: 1259 RVA: 0x0001C8DC File Offset: 0x0001AADC private void OnDestroy() { if (this.m_Visualizer != null) { Object.Destroy(this.m_Visualizer); } } // Token: 0x060004EC RID: 1260 RVA: 0x0001C900 File Offset: 0x0001AB00 [ClientCallback] private void FixedUpdate() { if (!(this.m_Visualizer == null)) { if (NetworkServer.active || NetworkClient.active) { if (base.isServer || base.isClient) { if (!base.hasAuthority || !this.m_NetworkTransform.localPlayerAuthority) { this.m_Visualizer.transform.position = this.m_NetworkTransform.targetSyncPosition; if (this.m_NetworkTransform.rigidbody3D != null && this.m_Visualizer.GetComponent() != null) { this.m_Visualizer.GetComponent().velocity = this.m_NetworkTransform.targetSyncVelocity; } if (this.m_NetworkTransform.rigidbody2D != null && this.m_Visualizer.GetComponent() != null) { this.m_Visualizer.GetComponent().velocity = this.m_NetworkTransform.targetSyncVelocity; } Quaternion quaternion = Quaternion.identity; if (this.m_NetworkTransform.rigidbody3D != null) { quaternion = this.m_NetworkTransform.targetSyncRotation3D; } if (this.m_NetworkTransform.rigidbody2D != null) { quaternion = Quaternion.Euler(0f, 0f, this.m_NetworkTransform.targetSyncRotation2D); } this.m_Visualizer.transform.rotation = quaternion; } } } } } // Token: 0x060004ED RID: 1261 RVA: 0x0001CA98 File Offset: 0x0001AC98 private void OnRenderObject() { if (!(this.m_Visualizer == null)) { if (!this.m_NetworkTransform.localPlayerAuthority || !base.hasAuthority) { if (this.m_NetworkTransform.lastSyncTime != 0f) { NetworkTransformVisualizer.s_LineMaterial.SetPass(0); GL.Begin(1); GL.Color(Color.white); GL.Vertex3(base.transform.position.x, base.transform.position.y, base.transform.position.z); GL.Vertex3(this.m_NetworkTransform.targetSyncPosition.x, this.m_NetworkTransform.targetSyncPosition.y, this.m_NetworkTransform.targetSyncPosition.z); GL.End(); this.DrawRotationInterpolation(); } } } } // Token: 0x060004EE RID: 1262 RVA: 0x0001CB9C File Offset: 0x0001AD9C private void DrawRotationInterpolation() { Quaternion quaternion = Quaternion.identity; if (this.m_NetworkTransform.rigidbody3D != null) { quaternion = this.m_NetworkTransform.targetSyncRotation3D; } if (this.m_NetworkTransform.rigidbody2D != null) { quaternion = Quaternion.Euler(0f, 0f, this.m_NetworkTransform.targetSyncRotation2D); } if (!(quaternion == Quaternion.identity)) { GL.Begin(1); GL.Color(Color.yellow); GL.Vertex3(base.transform.position.x, base.transform.position.y, base.transform.position.z); Vector3 vector = base.transform.position + base.transform.right; GL.Vertex3(vector.x, vector.y, vector.z); GL.End(); GL.Begin(1); GL.Color(Color.green); GL.Vertex3(base.transform.position.x, base.transform.position.y, base.transform.position.z); Vector3 vector2 = quaternion * Vector3.right; Vector3 vector3 = base.transform.position + vector2; GL.Vertex3(vector3.x, vector3.y, vector3.z); GL.End(); } } // Token: 0x060004EF RID: 1263 RVA: 0x0001CD38 File Offset: 0x0001AF38 private static void CreateLineMaterial() { if (!NetworkTransformVisualizer.s_LineMaterial) { Shader shader = Shader.Find("Hidden/Internal-Colored"); if (!shader) { Debug.LogWarning("Could not find Colored builtin shader"); } else { NetworkTransformVisualizer.s_LineMaterial = new Material(shader); NetworkTransformVisualizer.s_LineMaterial.hideFlags = HideFlags.HideAndDontSave; NetworkTransformVisualizer.s_LineMaterial.SetInt("_ZWrite", 0); } } } // Token: 0x04000226 RID: 550 [SerializeField] private GameObject m_VisualizerPrefab; // Token: 0x04000227 RID: 551 private NetworkTransform m_NetworkTransform; // Token: 0x04000228 RID: 552 private GameObject m_Visualizer; // Token: 0x04000229 RID: 553 private static Material s_LineMaterial; } }