@@ -65,6 +65,7 @@ void Update()
65
65
{
66
66
if ( isLocalPlayer )
67
67
{
68
+ //We own the object
68
69
if ( Time . time - lastSendTime >= timeForLerp && ( Vector3 . Distance ( transform . position , lastSentPos ) > MinMeters || Quaternion . Angle ( transform . rotation , lastSentRot ) > MinDegrees ) )
69
70
{
70
71
lastSendTime = Time . time ;
@@ -86,9 +87,34 @@ void Update()
86
87
87
88
}
88
89
}
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
+ }
89
114
else
90
115
{
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 ) )
92
118
{
93
119
if ( Vector3 . Distance ( transform . position , lerpEndPos ) > SnapDistance )
94
120
{
@@ -104,8 +130,6 @@ void Update()
104
130
105
131
private void OnRecieveTransformFromServer ( int clientId , byte [ ] data )
106
132
{
107
- if ( isServer )
108
- return ;
109
133
using ( MemoryStream stream = new MemoryStream ( data ) )
110
134
{
111
135
using ( BinaryReader reader = new BinaryReader ( stream ) )
0 commit comments