在使用Cursor打开Unity工程时遇到了Loading Project失败的报错

image.png

查看详情可以看到失败原因和.csproj编码格式有关

image.png

打开对应的.csproj文件发现文件的保存格式为 utf-8 with BOM 而在文件首行定义了encoding=”utf-16”, unity要求.csproj的格式为utf-8 with BOM, 所以需要修改文件内的encoding定义.

image.png

尝试了以下方法:

  1. 查看模板文件是否修改了encoding ❌
  2. 重新引入cursor ide package 并重新generate project ❌
  3. 其他工程使用cursor generate project ✅ 说明可能和缓存有关
  4. 在新的目录拉取老工程并用cursor generate project ❌
  5. 卸载cursor重新安装后使用cursor generate project ❌
  6. 尝试上图注释中提示的方法, 通过OnGeneratedCSProject 后处理再次修改.csproj文件 ✅
namespace AIOFramework.Editor
{
    public class ProjectEncodingModifier : AssetPostprocessor 
    {
        //使用cursor生成.csproj文件时编码格式冲突,通过后处理强制将encoding替换为utf-8
        private static string OnGeneratedCSProject(string path, string content)
        {
            return content.Replace("utf-16", "utf-8");
        }
    }
}

将上述脚本放在Editor脚本下,并在External Tools中点击Regenerate project files即可

image.png