コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】すべてのシーンに対して処理を行うクラス「UniSceneProcessor」を GitHub に公開しました

リポジトリ

使用例

すべてのシーンに対して処理を行う

using Kogane;
using UnityEditor;
using UnityEngine;

public static class Example
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        SceneProcessor.ProcessAllScenes
        (
            scene =>
            {
                // シーンに Cube を作成して保存
                GameObject.CreatePrimitive( PrimitiveType.Cube );
                return SceneProcessResult.CHANGE;
            }
        );
    }
}

特定のシーンに対して処理を行う

using Kogane;
using UnityEditor;
using UnityEngine;

public static class Example
{
    [MenuItem( "Tools/Hoge" )]
    private static void Hoge()
    {
        SceneProcessor.ProcessAllScenes
        (
            // 「Assets/@Project」フォルダ以下のシーンを対象にする
            scenePathFilter: scenePath => scenePath.StartsWith( "Assets/@Project" ),

            scene =>
            {
                // シーンに Cube を作成して保存
                GameObject.CreatePrimitive( PrimitiveType.Cube );
                return SceneProcessResult.CHANGE;
            }
        );
    }
}