@@ -44,7 +44,6 @@ private void OnValidate()
44
44
MinMeters = 0 ;
45
45
}
46
46
47
-
48
47
public override void NetworkStart ( )
49
48
{
50
49
if ( isServer )
@@ -61,11 +60,11 @@ public override void NetworkStart()
61
60
}
62
61
}
63
62
64
- void Update ( )
63
+ private void Update ( )
65
64
{
66
- if ( isLocalPlayer )
65
+ if ( isOwner || isLocalPlayer || ( ownerClientId == - 2 && isServer ) )
67
66
{
68
- //We own the object
67
+ //We own the object OR we are server and the object is not owned by anyone OR we are the object.
69
68
if ( Time . time - lastSendTime >= timeForLerp && ( Vector3 . Distance ( transform . position , lastSentPos ) > MinMeters || Quaternion . Angle ( transform . rotation , lastSentRot ) > MinDegrees ) )
70
69
{
71
70
lastSendTime = Time . time ;
@@ -87,30 +86,6 @@ void Update()
87
86
88
87
}
89
88
}
90
- else if ( ownerClientId == - 2 && isServer )
91
- {
92
- //This object is not our localObject. But it's not owned by anyone. Thus it's a server object.
93
- if ( Time . time - lastSendTime >= timeForLerp && ( Vector3 . Distance ( transform . position , lastSentPos ) > MinMeters || Quaternion . Angle ( transform . rotation , lastSentRot ) > MinDegrees ) )
94
- {
95
- lastSendTime = Time . time ;
96
- lastSentPos = transform . position ;
97
- lastSentRot = transform . rotation ;
98
- using ( MemoryStream writeStream = new MemoryStream ( 24 ) )
99
- {
100
- using ( BinaryWriter writer = new BinaryWriter ( writeStream ) )
101
- {
102
- writer . Write ( transform . position . x ) ;
103
- writer . Write ( transform . position . y ) ;
104
- writer . Write ( transform . position . z ) ;
105
- writer . Write ( transform . rotation . eulerAngles . x ) ;
106
- writer . Write ( transform . rotation . eulerAngles . y ) ;
107
- writer . Write ( transform . rotation . eulerAngles . z ) ;
108
- }
109
- SendToServerTarget ( "MLAPI_OnRecieveTransformFromClient" , "MLAPI_POSITION_UPDATE" , writeStream . GetBuffer ( ) ) ;
110
- }
111
-
112
- }
113
- }
114
89
else
115
90
{
116
91
//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 @@ void Update()
119
94
if ( Vector3 . Distance ( transform . position , lerpEndPos ) > SnapDistance )
120
95
{
121
96
//Snap, set T to 1 (100% of the lerp)
122
- lerpT = 1 ;
97
+ lerpT = 1f ;
123
98
}
124
99
lerpT += Time . deltaTime / timeForLerp ;
125
100
transform . position = Vector3 . Lerp ( lerpStartPos , lerpEndPos , lerpT ) ;
0 commit comments