【Unity】使いそうな知識とノウハウメモ
Lighting関係
Skyboxの作り方
地平線が中心に来るように一枚の高解像度画像を使ってテクスチャを作る。
それを Cubemap に登録、Skybox 作成、アタッチ、LightingでSkybox登録。
スカイボックスはドーム状に作られるので、上部がギューッと圧縮される。
画像の左右はループできるように作れば繋がるので、これを守れば自作可。
Skyboxをスクリプトで回転させる
プロのライティングを学ぶ
LightProbe、AreaLightの使い方、Lightingパラメータ周り。
Terrain関係
ブラシを使って高さの上下、テクスチャを塗ったり、テクスチャはマテリアル毎に設定できる機能。
木や草を配置できて、風の設定すると草が揺れてくれる模様(木も拡張すれば揺れる)
ただし仕上げの後にサイズを変えたい際に木が最適化されないなどの問題がある様子。
最初からサイズを決め打ちして作る必要が?
Terrainの解説
Terrainのtree重すぎ問題を GPU Instancing で解決
Terrainチューリアル(英語)
Terrain Tools Sample Asset Pack
assetstore.unity.com
Shader関係
Amplify Shader Editor
SRP、URP、HDRP以前の built-in shader では Shader Graph が使えないためこれを使う
Shadero Sprite
2Dスプライトにエフェクトを加えるシェーダーを作るツール。
ProBuilder
プロトタイピングにサクッとマップを作るときに推奨されるようだが、
ローポリ系のオブジェクトでマップを作るときはこれだけで行けそう。
マテリアルは何個も登録して貼り付けていく形の作り方。
これと Polyblush を組み合わせるととてもよいよ、という宣伝文句。
Polyblush
既存のメッシュをスカルプトで変形できたり、色やテクスチャをブラシで塗れる。
Terrein のように個性的なブラシが使えるわけではないようなこと、
マテリアル設定もできるがシェーダーを自力で書かないとならないのが厳しいか。
とりあえず Probuilder でモデリングして、Polyblush でスカルプトする、
といった簡単な機能が Unity 単体で使えるという意味ではよさそうだけど、
検索してる限り、あまり使ってる人がいない気がする。これから?
ノウハウ
1unit = 1m
Unityのグリッドは 1unit と呼ぶが、それは 1m に対応する。
ライティング関係は、これを基準に計算するらしいので、覚えておくとよいかも。
Debug.Logは重い
どうもビルド環境でも内部では動作するらしいので、プリプロセッサのUNITY_EDITORで囲っておく必要がありそう。
おそらくデバッグログを表示するメソッドを用意して、そこにテキストを流し込む形がよいかも?
もしくは、デバッグログ表示用のフラグを作るとか。
uGUIは動かすことを想定していない
特に Animator で動かすのはよくないらしい、相当重いとのこと。
Tween がオススメらしいが、とりあえず uGUI を動かすと GC が働くらしいのでそこを意識しておいたほうがよさげ。
文字列を作るときは StringBuilder が早い
ふつうに「+=」で追加したり、「"文字列" + 変数」系は処理が重いらしい。
docs.microsoft.com