- 985 名前:名前は開発中のものです。 mailto:sage [2014/05/04(日) 21:33:28.65 ID:dYhR0UXE.net]
- 恥を忍んでソースを晒します
void 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 に書き戻すところで何か間違っているのだと思いますが さっぱり分からないです
|

|