Skip to content

Commit 07fcd7d

Browse files
author
Jiang Yin
committed
修正Unity 2019兼容性问题
1 parent 1480ced commit 07fcd7d

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

Scripts/Runtime/FileSystem/AndroidFileSystemStream.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,13 @@ protected override int ReadByte()
180180
/// <returns>实际读取了多少字节。</returns>
181181
protected override int Read(byte[] buffer, int startIndex, int length)
182182
{
183+
#if UNITY_2019_1_OR_NEWER
184+
sbyte[] result = null;
185+
#else
183186
byte[] result = null;
187+
#endif
184188
int bytesRead = InternalRead(length, out result);
185-
Array.Copy(results, 0, buffer, startIndex, bytesRead);
189+
Array.Copy(result, 0, buffer, startIndex, bytesRead);
186190
return bytesRead;
187191
}
188192

@@ -243,9 +247,17 @@ private int InternalRead()
243247
return m_FileStream.Call<int>("read");
244248
}
245249

250+
#if UNITY_2019_1_OR_NEWER
251+
private int InternalRead(int length, out sbyte[] result)
252+
#else
246253
private int InternalRead(int length, out byte[] result)
254+
#endif
247255
{
256+
#if UNITY_2019_1_OR_NEWER
257+
IntPtr resultPtr = AndroidJNI.NewSByteArray(length);
258+
#else
248259
IntPtr resultPtr = AndroidJNI.NewByteArray(length);
260+
#endif
249261
int offset = 0;
250262
int bytesLeft = length;
251263
while (bytesLeft > 0)
@@ -263,7 +275,12 @@ private int InternalRead(int length, out byte[] result)
263275
bytesLeft -= bytesRead;
264276
}
265277

278+
#if UNITY_2019_1_OR_NEWER
279+
result = AndroidJNI.FromSByteArray(resultPtr);
280+
#else
266281
result = AndroidJNI.FromByteArray(resultPtr);
282+
#endif
283+
267284
AndroidJNI.DeleteLocalRef(resultPtr);
268285
return offset;
269286
}

0 commit comments

Comments
 (0)