概要
シーンを保存した時に .lighting ファイルが勝手に保存される時の対策として
以下のエディタ拡張を作成した
すべてのシーンの Lighting Settings Asset を無効化するエディタ拡張
using System.Linq; using UnityEditor; using UnityEditor.SceneManagement; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var paths = AssetDatabase .GetAllAssetPaths() .Where( x => x.EndsWith( ".unity" ) ) .ToArray() ; var setups = EditorSceneManager.GetSceneManagerSetup(); foreach ( var path in paths ) { var scene = EditorSceneManager.OpenScene( path ); if ( Lightmapping.lightingSettings == null ) continue; Lightmapping.lightingSettings = null; EditorSceneManager.SaveScene( scene ); } EditorSceneManager.RestoreSceneManagerSetup( setups ); } }
開いたシーンの Lighting Settings Asset を無効化するエディタ拡張
using System; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine.SceneManagement; [InitializeOnLoad] public static class LightingSettingsDisabler { static LightingSettingsDisabler() { EditorSceneManager.sceneOpened += ( _, _ ) => { try { if ( Lightmapping.lightingSettings == null ) return; Lightmapping.lightingSettings = null; EditorSceneManager.MarkSceneDirty( SceneManager.GetActiveScene() ); } catch ( Exception ) { // ignored } }; } }