Kaynağa Gözat

[unity] Handle varying CopyTexture support.

pharan 7 yıl önce
ebeveyn
işleme
b4db3b2114

+ 8 - 1
spine-unity/Assets/Spine/Runtime/spine-unity/Modules/AttachmentTools/AttachmentTools.cs

@@ -619,7 +619,14 @@ namespace Spine.Unity.Modules.AttachmentTools {
 		}
 
 		static void CopyTexture (Texture2D source, Rect sourceRect, Texture2D destination) {
-			Graphics.CopyTexture(source, 0, 0, (int)sourceRect.x, (int)sourceRect.y, (int)sourceRect.width, (int)sourceRect.height, destination, 0, 0, 0, 0);
+			if (SystemInfo.copyTextureSupport == UnityEngine.Rendering.CopyTextureSupport.None) {
+				// GetPixels fallback for old devices.
+				Color[] pixelBuffer = source.GetPixels((int)sourceRect.x, (int)sourceRect.y, (int)sourceRect.width, (int)sourceRect.height);
+				destination.SetPixels(pixelBuffer);
+				destination.Apply();
+			} else {
+				Graphics.CopyTexture(source, 0, 0, (int)sourceRect.x, (int)sourceRect.y, (int)sourceRect.width, (int)sourceRect.height, destination, 0, 0, 0, 0);
+			}
 		}
 
 		static bool IsRenderable (Attachment a) {