@@ -65,6 +65,7 @@ void Update()
6565 {
6666 if ( isLocalPlayer )
6767 {
68+ //We own the object
6869 if ( Time . time - lastSendTime >= timeForLerp && ( Vector3 . Distance ( transform . position , lastSentPos ) > MinMeters || Quaternion . Angle ( transform . rotation , lastSentRot ) > MinDegrees ) )
6970 {
7071 lastSendTime = Time . time ;
@@ -86,9 +87,34 @@ void Update()
8687
8788 }
8889 }
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+ }
89114 else
90115 {
91- if ( ( isServer && InterpolateServer ) || ! isServer )
116+ //If we are server and interpolation is turned on for server OR we are not server and interpolation is turned on
117+ if ( ( isServer && InterpolateServer && InterpolatePosition ) || ( ! isServer && InterpolatePosition ) )
92118 {
93119 if ( Vector3 . Distance ( transform . position , lerpEndPos ) > SnapDistance )
94120 {
@@ -104,8 +130,6 @@ void Update()
104130
105131 private void OnRecieveTransformFromServer ( int clientId , byte [ ] data )
106132 {
107- if ( isServer )
108- return ;
109133 using ( MemoryStream stream = new MemoryStream ( data ) )
110134 {
111135 using ( BinaryReader reader = new BinaryReader ( stream ) )
0 commit comments