@@ -44,7 +44,6 @@ private void OnValidate()
4444 MinMeters = 0 ;
4545 }
4646
47-
4847 public override void NetworkStart ( )
4948 {
5049 if ( isServer )
@@ -61,11 +60,11 @@ public override void NetworkStart()
6160 }
6261 }
6362
64- void Update ( )
63+ private void Update ( )
6564 {
66- if ( isLocalPlayer )
65+ if ( isOwner || isLocalPlayer || ( ownerClientId == - 2 && isServer ) )
6766 {
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.
6968 if ( Time . time - lastSendTime >= timeForLerp && ( Vector3 . Distance ( transform . position , lastSentPos ) > MinMeters || Quaternion . Angle ( transform . rotation , lastSentRot ) > MinDegrees ) )
7069 {
7170 lastSendTime = Time . time ;
@@ -87,30 +86,6 @@ void Update()
8786
8887 }
8988 }
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- }
11489 else
11590 {
11691 //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()
11994 if ( Vector3 . Distance ( transform . position , lerpEndPos ) > SnapDistance )
12095 {
12196 //Snap, set T to 1 (100% of the lerp)
122- lerpT = 1 ;
97+ lerpT = 1f ;
12398 }
12499 lerpT += Time . deltaTime / timeForLerp ;
125100 transform . position = Vector3 . Lerp ( lerpStartPos , lerpEndPos , lerpT ) ;
0 commit comments