強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Texture から Texture2D への変換

【参考情報】

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;