BeardedManStudios.Network.NetworkedMonoBehavior.UpdateRemoteNetRef C# (CSharp) Метод

UpdateRemoteNetRef() приватный Метод

private UpdateRemoteNetRef ( NetRef obj ) : void
obj NetRef
Результат void
		private void UpdateRemoteNetRef(NetRef<object> obj)
		{
			valueGetter = obj.Value;

			bool finalize = false;

			if (valueGetter is float)
			{
				obj.Value = (float)Mathf.Lerp((float)valueGetter, (float)obj.LerpTo, lerpT);

				if (Math.Abs((float)obj.LerpTo - (float)valueGetter) <= lerpStopOffset)
					finalize = true;
			}
			else if (valueGetter is double)
			{
				obj.Value = BeardedMath.Lerp((double)valueGetter, (double)obj.LerpTo, lerpT);

				if (Math.Abs((double)obj.LerpTo - (double)valueGetter) <= lerpStopOffset)
					finalize = true;
			}
			else if (valueGetter is Vector2)
			{
				obj.Value = Vector2.Lerp((Vector2)valueGetter, (Vector2)obj.LerpTo, lerpT);

				if (Vector2.Distance((Vector2)valueGetter, (Vector2)obj.LerpTo) <= lerpStopOffset)
					finalize = true;
			}
			else if (valueGetter is Vector3)
			{
				obj.Value = Vector3.Lerp((Vector3)valueGetter, (Vector3)obj.LerpTo, lerpT);

				if (Vector3.Distance((Vector3)valueGetter, (Vector3)obj.LerpTo) <= lerpStopOffset)
					finalize = true;
			}
			else if (valueGetter is Vector4)
			{
				obj.Value = Vector4.Lerp((Vector4)valueGetter, (Vector4)obj.LerpTo, lerpT);

				if (Vector4.Distance((Vector4)valueGetter, (Vector4)obj.LerpTo) <= lerpStopOffset)
					finalize = true;
			}
			else if (valueGetter is Quaternion)
			{
				obj.Value = Quaternion.Slerp((Quaternion)valueGetter, (Quaternion)obj.LerpTo, lerpT);

				if (Quaternion.Angle((Quaternion)valueGetter, (Quaternion)obj.LerpTo) <= lerpAngleStopOffset)
					finalize = true;
			}
			else
				finalize = true;

			if (finalize)
			{
				obj.AssignToLerp();
				obj.Callback(this, true);
			}
		}