csharp 用于从csproj unity 2018中排除着色器文件的后处理器生成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 用于从csproj unity 2018中排除着色器文件的后处理器生成相关的知识,希望对你有一定的参考价值。

using SyntaxTree.VisualStudio.Unity.Bridge;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using UnityEditor;
using UnityEngine;

// Post processor for excluding shader files from the csproj unity 2018 generates
[InitializeOnLoad]
public class CsprojPostProcessor : MonoBehaviour {
    static CsprojPostProcessor() {
        ProjectFilesGenerator.ProjectFileGeneration += ModifyProjectFile;
    }

    private static string ModifyProjectFile(string name, string content) {
        XDocument document = XDocument.Parse(content);

        var itemGroups = document.Root.Descendants()
            .Where(node => node.Name.LocalName == "ItemGroup");

        IEnumerable<XElement> shaderGroups = itemGroups.Select(group => {
            var child = group.Descendants()
                .FirstOrDefault();

            if (child != null && child.Name.LocalName == "None")
                return group;

            return null;
        });

        foreach(XElement group in shaderGroups) {
            group?.RemoveAll();
        }

        return document.ToString();
    }
}

以上是关于csharp 用于从csproj unity 2018中排除着色器文件的后处理器生成的主要内容,如果未能解决你的问题,请参考以下文章

csharp Unity向导,用于从源图像生成调色板

csharp Foreach sln for csproj解析sln中的每个csproj

错误:*.csproj 无法在 MonoDevelop 上导入“$(MSBuildBinPath)\Microsoft.CSharp.targets”

csharp 解析CsProj

csharp 用于模拟摆动的Unity脚本

csharp 用于Unity的触摸手势检测器。