はじめに Unity で MeshRenderer 用の Shader を記述する際、シーンの環境光情報を取得することは必須である。しかし Unity の Shader ファイルやマクロは多大である割に Document は皆無で発見しづらくバージョンアップで頻繁に変わるので、インターネット上の情報を参考にするとおかしくなることが多い。 特にシーンの Lighting 設定で Environment Lighting を単色や Skybox で切り替えたりするとそれに追従できないユーザシェーダも多い。本記事ではシーンの Lighting 情報に対応する。 環境 以下の 2 つで確認 Unity 5.6 Unity 2017.3 やり方 UnityCG.cginc に宣言されている ShadeSH9 関数を使うだけである。 i.normal は World 座標での法線である。 また Sha