コガネブログ

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

【Unity】エディタ拡張で Project Template を保存する関数

ソースコード

using System.Reflection;
using UnityEditor;
using UnityEngine.Assertions;

public static class EditorUtilityInternal
{
    public static void SaveProjectAsTemplate
    (
        string targetPath,
        string name,
        string displayName,
        string description,
        string defaultScene,
        string version
    )
    {
        var                type        = typeof( EditorUtility );
        const string       methodName  = nameof( SaveProjectAsTemplate );
        const BindingFlags bindingAttr = BindingFlags.Static | BindingFlags.NonPublic;
        var                methodInfo  = type.GetMethod( methodName, bindingAttr );

        Assert.IsNotNull( methodInfo );

        var parameters = new object[]
        {
            targetPath,
            name,
            displayName,
            description,
            defaultScene,
            version,
        };

        methodInfo.Invoke( null, parameters );
    }
}