Unity/光
提供: 初心者エンジニアの簡易メモ
目次
2Dで光をあてる方法
- プロジェクトにmaterialを新規作成する
- materialのInspectorを開きshaderをSprites/Diffuseに変更する
- 光を当てたい画像オブジェクトのSpriteRendererのmaterialを作成したmaterialに変更する
- ヒエラルキーでPointLightを作成し、光を当てたいオブジェクトのx,y,zと同じ位置に移動する
画面遷移で画面が暗くなるのを修正
- Unityメニュー/Window/Readering/Ligthing
- Environmentタブを開き、GenerateLightingボタンを押す
物体を光らせる
物体に当てているMaterialで、Emissionをonにすれば良い。 ただし重いのでスマホ(古いAndroid)では使わないほうがよい。
Emissionで発光させる
- 床のPlaneや、発光させるオブジェクトのCubeを作成し、InspectorのStaticに、チェックを入れる
- Materialを作成し、InspectorのEmissionにチェック
- 発光させるオブジェクトのCubeのMaterialを上記のMaterialに変更する
- Unityメインメニュー/Window/Renderring/Lighting/"Generate Lighting"ボタンを押す(10分ぐらいかかるっぽい)
- Hierarchy/"Directional Light"のInspector内のLightのIntensityを、0.1にして、全体を、暗くする
参考:https://teratail.com/questions/264069
参考:http://corevale.com/unity/2694
PointLightで発光させる
- 床のPlaneや、発光させるオブジェクトのCubeを作成。
- Hierarchy/"Directional Light"のInspector内のLightのIntensityを、0.1にして、全体を、暗くする
- Cubeの中にPointLightを作成し、InspectorのLightのColorで、色を選択する。
参考:https://www.unityprogram.info/entry/Fors-Unity-Object
スポットライト
Light/SpotLightから追加。 ただし重いのでスマホ(古いAndroid)では使わないほうがよい。
太陽の照り返し
地面の反射色が変わる
GameObject.Find("Directional Light").GetComponent<Light>().intensity = 0f;// 0f~1f
室内を明るく
- Unityメインメニュー/Window/Rendering/Lightingを選択
- "Environment Lighting"のSourceがSkyboxとなってるので、Colorに変更して、ambientSkyColor (ambientLight)の色を白に
参考:https://ymgsapo.com/2022/02/10/unity-room-light/
室内を明るく動的に
RenderSettings.ambientSkyColor = new Color(1f, 1f, f, 1f); // RGBA
intersityを0から1にした場合の値。(値は、シーンファイルのdiff差分で、確認できる)
RenderSettings.ambientSkyColor = new Color(1.414f, 1.414f, 1.414f, 1f);