【Unity】Graphicsクラスのメモ
2021-04-05
Unity の描画機能の Raw インターフェースです。とのこと、Graphicsクラスが色々便利なので、ちょっとメモ。
Env.
Unity2020.3.0f1
Windows10 64bit
GraphicsClass
Textureをコピーしたり、メッシュを描画したり、色々できるらしい。よく使うものを主にメモする。
Static関数
Graphics.Blit
テクスチャを別のテクスチャにコピーする。RenderTextureを別のRenderTextureにコピーするときなどに使う。
スケールが違う場合も自動的に調整してくれる。比率が違う場合はストレッチする。
また、BlitでRenderTextureを画面に直接描画みたいなこともできる。
詳しくは https://github.com/nmxi/Unity_RenderTextureDirect
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using UnityEngine; public class Blit : MonoBehaviour { [SerializeField] private RenderTexture sourceRt; [SerializeField] private RenderTexture destRt; private void LateUpdate() { Graphics.Blit(sourceRt, destRt); } } |
Graphics.CopyTexture
Blitと似ているが、コピー元の指定部分をコピー先の指定部分に貼り付けることができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using UnityEngine; public class CopyTexture : MonoBehaviour { [SerializeField] private RenderTexture sourceRt; [SerializeField] private RenderTexture destRt; [Space] [SerializeField] private int sourceX; [SerializeField] private int sourceY; [SerializeField] private int sourceWidth; [SerializeField] private int sourceHeight; [Space] [SerializeField] private int targetX; [SerializeField] private int targetY; private void LateUpdate() { Graphics.CopyTexture(sourceRt, 0, 0, sourceX, sourceY, sourceWidth, sourceHeight, destRt, 0, 0, targetX, targetY); } } |
引数にコピー元とコピー先のテクスチャのみ与えると、ただのコピーになる。ただコピーするだけだったらBlitの軽いのか?…(環境による?
これ以外にも便利な関数があったりするが、気が向いたら追記する。