【3Dゲームエンジン】Unity質問スレッド8
レス数が900を超えています。1000を超えると表示できなくなるよ。
0942名前は開発中のものです。
2014/05/04(日) 21:33:28.65ID:dYhR0UXEvoid OnPostRender(){
Texture2D t_t2d = new Texture2D(800, 600);
t_t2d.ReadPixels(new Rect(0, 0, 800, 600), 0, 0);
t_t2d.Apply();
var bytes = t_t2d.EncodeToPNG();
File.WriteAllBytes(Application.dataPath + "/../SavedScreen.png", bytes);
t_go = GameObject.Find("スプライト");
t_sr = (SpriteRenderer)t_go.GetComponent("SpriteRenderer");
t_sr.enabled = true;
t_sr.sprite = Sprite.Create(
t_t2d,
new Rect(0, 0, 800, 600),
new Vector2(0.5F, 0.5F),
1F
);
}
これは、Spriteとして持つ800×600の画像を800×600の画面にピクセルパーフェクトで表示した状態で
Camera の OnPostRender で実行されるソースです
最初の3行で現在画面に表示されている内容を t_t2d(Texture2D) に取り込み
次の2行で取り込んだ t_t2d の内容を SavedScreen.png というファイル名で出力し
残りの行で800×600の画像を持っていた Sprite に書き戻しています
SavedScreen.png の画像は800×600の画像とイコールですが
Sprite に書き戻した後の画面表示はピクセルパーフェクトではない、ぼやけた表示になってしまいます
これは何が原因で、どこを直せばピクセルパーフェクトを維持できるでしょうか
png 出力までは正常なので、Sprite に書き戻すところで何か間違っているのだと思いますが
さっぱり分からないです
レス数が900を超えています。1000を超えると表示できなくなるよ。