【参考情報】
Reading pixel data from material.mainTexture returns grey color - Unity Answers
http://answers.unity3d.com/questions/1271693/reading-pixel-data-from-materialmaintexture-return.html
Texture を RenderTexture を経由して、 Texture2D に変換。
Texture mainTexture = mat.GetTexture("_MainTex"); // Material のメインテクスチャを取得 Texture2D texture2D = new Texture2D(mainTexture.width, mainTexture.height, TextureFormat.RGBA32, false); RenderTexture currentRT = RenderTexture.active; RenderTexture renderTexture = new RenderTexture(mainTexture.width, mainTexture.height, 32); // mainTexture のピクセル情報を renderTexture にコピー Graphics.Blit(mainTexture, renderTexture); // renderTexture のピクセル情報を元に texture2D のピクセル情報を作成 RenderTexture.active = renderTexture; texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); texture2D.Apply(); Color[] pixels = texture2D.GetPixels(); RenderTexture.active = currentRT;