【Unity】RenderTextureとプロジェクターについて
前回の記事で書いたように「Textureを変えずに文字をマテリアルに映す」方法で、TextMeshを使わないバージョンも書いときます。
今回使うのはunityのRenderTextureとプロジェクターです。
今回のやり方は、TextMeshを使う方法より綺麗に映せます。
っていうのも、TextMeshはMeshが平らなので、曲がった面に張り付けようとすると変な感じになってしまいます。
しかし、プロジェクタなら曲がった面にしっかり張り付きます。
ただ、プロジェクターはLightingに左右されるので、調整する箇所がいくつかあって、めんどい。はっきり見せたい場合、しっかり作りこむ必要がありますが、今回はそこまでやりません。
では、プロジェクタの使用方法です。
まず、StandardAssetをインポートしてくださいな。
これがプロジェクタのプレハブなので、これをドラッグアンドドロップなどで生成してね。
インスペクターのMaterialsの部分がプロジェクタが映すマテリアルになる。
どうやってScene内の映像を映すのさ!?
簡単です。
登場、「Render Texture」
Render Textureはカメラで見た映像をTextureにしてくれるものです。(本当は違う用途にもできます)
プロジェクトからRender Textureを作って、ヒエラルキーから新しく作ったカメラにアタッチしてください。
これで自分が投影したい映像をカメラに見せることで、それがTextureになります。
んで、新しいマテリアルを作成し、シェーダーをプロジェクターに設定して、さっきのRender Textureをアタッチ。
これをプロジェクターのMaterialsに突っ込めば終了。
シェーダーの部分をProjector/Multiplyを利用するとプロジェクタでもはっきり見えるようになるが、やり方は書くのめんどいので察してくれ。