UnityでFogは[Window] » [Lighting]
から設定できますが、全体での設定になるのでカメラごとにFogをOnにしたりOffにしたりという設定ができません。そこで、On/Offを切り替えたい場合はOnPreRender/OnPostRender
で設定するスクリプトを使うという方法があるみたいです。
public class ExampleClass : MonoBehaviour
{
private bool revertFogState = false;
void OnPreRender()
{
revertFogState = RenderSettings.fog;
RenderSettings.fog = enabled;
}
void OnPostRender()
{
RenderSettings.fog = revertFogState;
}
}
Unity - Scripting API: MonoBehaviour.OnPreRender()より
ちなみに、確かめたことはありませんが、On/Offの切り替えで特別なコストが発生するということはないそうです。
リンク
Unity – Scripting API: MonoBehaviour.OnPreRender()
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnPreRender.html
Fog per Camera Unity Community
https://forum.unity3d.com/threads/fog-per-camera.119888/