2021

解决UE4在中文环境下Compile错误提示乱码问题

UE4 4.26.0,VS 2019 Community,中文Win10 20H2组合在一起出现了今天要讲的问题,Compile出错时的log信息中中文乱码

试过切换VS语言为英文,UE4语言为中文,均不起作用,想起之前的这个问题:Android Studio的Build Output中文输出乱码(菱形问号)问题的解决方法,以为是不是UE4也有类似的设置,查找半天无果,最后发现其实新版Win10(最早哪个版本加上的我也不清楚)里面的区域语言设置中有个UTF-8的选项,虽然到目前用的20H2时仍声称为beta状态,但确实可以解决这个问题:

Continue reading…

Unity中使用ExcelDataReader实现Excel文件读取功能的坑

首先,这次在Unity中实现读取Excel文件(.xls .xlsx)功能是通过这个开源.Net库:https://github.com/ExcelDataReader/ExcelDataReader,感谢ExcelDataReader的作者和contributors!写这篇脱坑文时的ExcelDataReader版本是3.6.0,使用的Unity版本是2019.4.12f1。可以看到,这个库的Github上Release中提供的是NuGet包和源码,当然,自行源码编译出dll使用也是可以的,或者解包nupkg,但其实在Unity中也是可以使用NuGet管理第三方库的,在Unity中通过NuGet安装ExcelDataReader的完整过程可以参考这里:https://qiita.com/tani-shi/items/b155858f07c7350d3e2d,用到的Unity NuGet插件是这个https://github.com/GlitchEnzo/NuGetForUnity/releases,同样感谢做和贡献者们!一切准备就绪后,开始码代码:

        FileStream stream = File.Open("d:\\test.xlsx", FileMode.Open, FileAccess.Read, FileShare.Read);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        Debug.Log(excelReader.IsClosed);

        DataSet result = excelReader.AsDataSet();
        int columnNum = result.Tables[0].Columns.Count;
        int rowNum = result.Tables[0].Rows.Count;

很简单的一段代码,测试下功能,在Unity Editor中运行一切正常,顺利读取出了test.xlsx中的信息,结果在Build了下Standalone执行程序后,再试,神奇的事情发生了,ExcelReaderFactory.CreateOpenXmlReader返回了null!

Continue reading…