導入
spriteのぼやけを直すときは、素材となる画像の設定をいじれば良かったが、コードで作った(素材となる画像が存在しない)textureのぼやけを直すときは…あれ?どこをいじれば良いんだろう…。
――というわけで「texture ぼやける」と検索。
しかし、解決策が出てこない…。仕方なくUnityの公式ドキュメントで検索したところ、使えそうなコードを発見!
というわけで、使えそうなコードを見つけたので、Unityドット勢には是非知っておいてほしいコードを共有したいと思います。
コード
やっていることは、コードを使ってtextureのfilterModeをPointに変えているだけ。
テクスチャのぼやけを消したい場合
// どのtextureに対して行うか選ぶ
// (例1)
Texture texture = GetComponent<RawImage>().texture;
// (例2)
Texture texture = GetComponent<Renderer>().material.mainTexture;
// 今回紹介するコード(フィルターモードをpointに変更する)
texture.filterMode = FilterMode.Point;
スプライトのぼやけを消したい場合
スプライトのtextureに対して、さっきの処理をするだけです。
// どのsprit
eに対して行うか選ぶ
// (例1)
Texture texture = GetComponent<Renderer>().sprite.texture;
// さっきと同じ
texture.filterMode = FilterMode.Point;
いつ使うの?
冒頭でも触れましたが、「いつ使うか?」と聞かれたら、コード内で作ったtextureのfilterModeをPointにしたいときです。それか「ゲームの途中でfilterModeを変えるとき」とか(『Evoland』っぽいゲームを作りたいなら使うかも)。
あと、なぜコード内でtextureを作っているかといえば、「2DObjectの4方向から見たimageを作る手間を省くため」です。
↓ 実際に使う場面はこのような場面です。
参考文献
今回の参考文献は冒頭でも触れた通り、「Unityの公式ドキュメント(2021.1)」>「Filter Mode」