public static UnityPluginParameter ParseUnityPluginParameter( Configs.UnityPlugins configs, Configs.UnityManagedPluginProject projectConfig) { Ensure.Argument.NotNull(configs, nameof(configs)); Ensure.Argument.NotNull(projectConfig, nameof(projectConfig)); StringToVersionInfo versions = null; if (projectConfig.ForMultipleVersions) { versions = projectConfig.Versions ?? new StringToVersionInfo(); foreach (var kvp in configs.DefaultVersions) { var ver = kvp.Key; var info = kvp.Value; if (!versions.ContainsKey(ver)) { versions.Add(ver, info); } } } var parameter = new UnityPluginParameter { ForEditor = projectConfig.ForEditor, Versions = versions?.ToDictionary(p => UnityVersion.Parse(p.Key), p => p.Value) }; return(parameter); }
private static void ConfigureUnityPlugins(Configs.UnityPlugins config) { foreach (var kvp in config.ManagedProjects) { var projPath = kvp.Key; LoggedConsole.WriteInfo($@"Configure c# project '{projPath}'."); var vsproj = VSProject.GetOrLoad(projPath); if (vsproj == null) { LoggedConsole.WriteWarn($"Failed to load project at '{projPath}', skipped."); continue; } var parameter = CSharpProjectConfigurator.ParseUnityPluginParameter(config, kvp.Value); CSharpProjectConfigurator.SetupUnityPluginProject(vsproj, parameter); } }
public static UnityPluginParameter ParseUnityPluginParameter(Configs.UnityPlugins configs, string projectPath) { Ensure.Argument.NotNull(configs, nameof(configs)); Ensure.Argument.NotNullOrEmpty(projectPath, nameof(projectPath)); return(ParseUnityPluginParameter(configs, configs.ManagedProjects[projectPath])); }