Cleaned NetworkedTransform up

This commit is contained in:
Albin Corén 2018-03-06 22:47:04 +01:00
parent b66856ce5a
commit dc4b70c6d1

View File

@ -44,7 +44,6 @@ namespace MLAP
MinMeters = 0; MinMeters = 0;
} }
public override void NetworkStart() public override void NetworkStart()
{ {
if (isServer) if (isServer)
@ -61,11 +60,11 @@ namespace MLAP
} }
} }
void Update() private void Update()
{ {
if(isLocalPlayer) if(isOwner || isLocalPlayer || (ownerClientId == -2 && isServer))
{ {
//We own the object //We own the object OR we are server and the object is not owned by anyone OR we are the object.
if(Time.time - lastSendTime >= timeForLerp && (Vector3.Distance(transform.position, lastSentPos) > MinMeters || Quaternion.Angle(transform.rotation, lastSentRot) > MinDegrees)) if(Time.time - lastSendTime >= timeForLerp && (Vector3.Distance(transform.position, lastSentPos) > MinMeters || Quaternion.Angle(transform.rotation, lastSentRot) > MinDegrees))
{ {
lastSendTime = Time.time; lastSendTime = Time.time;
@ -87,30 +86,6 @@ namespace MLAP
} }
} }
else if(ownerClientId == -2 && isServer)
{
//This object is not our localObject. But it's not owned by anyone. Thus it's a server object.
if (Time.time - lastSendTime >= timeForLerp && (Vector3.Distance(transform.position, lastSentPos) > MinMeters || Quaternion.Angle(transform.rotation, lastSentRot) > MinDegrees))
{
lastSendTime = Time.time;
lastSentPos = transform.position;
lastSentRot = transform.rotation;
using (MemoryStream writeStream = new MemoryStream(24))
{
using (BinaryWriter writer = new BinaryWriter(writeStream))
{
writer.Write(transform.position.x);
writer.Write(transform.position.y);
writer.Write(transform.position.z);
writer.Write(transform.rotation.eulerAngles.x);
writer.Write(transform.rotation.eulerAngles.y);
writer.Write(transform.rotation.eulerAngles.z);
}
SendToServerTarget("MLAPI_OnRecieveTransformFromClient", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer());
}
}
}
else else
{ {
//If we are server and interpolation is turned on for server OR we are not server and interpolation is turned on //If we are server and interpolation is turned on for server OR we are not server and interpolation is turned on
@ -119,7 +94,7 @@ namespace MLAP
if(Vector3.Distance(transform.position, lerpEndPos) > SnapDistance) if(Vector3.Distance(transform.position, lerpEndPos) > SnapDistance)
{ {
//Snap, set T to 1 (100% of the lerp) //Snap, set T to 1 (100% of the lerp)
lerpT = 1; lerpT = 1f;
} }
lerpT += Time.deltaTime / timeForLerp; lerpT += Time.deltaTime / timeForLerp;
transform.position = Vector3.Lerp(lerpStartPos, lerpEndPos, lerpT); transform.position = Vector3.Lerp(lerpStartPos, lerpEndPos, lerpT);