scripts
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
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<NetworkTransform>();
|
||||
NetworkTransformVisualizer.CreateLineMaterial();
|
||||
this.m_Visualizer = Object.Instantiate<GameObject>(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<Rigidbody>() != null)
|
||||
{
|
||||
this.m_Visualizer.GetComponent<Rigidbody>().velocity = this.m_NetworkTransform.targetSyncVelocity;
|
||||
}
|
||||
if (this.m_NetworkTransform.rigidbody2D != null && this.m_Visualizer.GetComponent<Rigidbody2D>() != null)
|
||||
{
|
||||
this.m_Visualizer.GetComponent<Rigidbody2D>().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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user