Unity生成的c#项目名字默认为Assembly-CSharp.csproj
和Assembly-CSharp-firstpass.csproj
。
但是最近看到部分项目名字变成了{projectname}.csproj
和{projectname}.Plugins.csproj
。
测试得出,Visual Studio Tools for Unity(VSTU)
会自动修改csproj文件名为{projectname}
。查阅文档也发现ChangeLog有相应的记录说明和Bug修正。
为了保证csproj的文件名相同,需要让所有机器都安装了VSTU
。
VS2015之前的版本,可以通过扩展和更新安装。
VS2017之后的版本,则需要通过Visual Studio Installer
安装。
另外在查文档的时候,看到VSTU
有包含少量可编程方法的说明。
Customize Project Files Created by VSTU
修改VSTU生成出来的csproj文件using System; using System.IO; using System.Linq; using System.Text; using System.Xml.Linq; using UnityEngine; using UnityEditor; using SyntaxTree.VisualStudio.Unity.Bridge; [InitializeOnLoad] public class ProjectFileHook { // necessary for XLinq to save the xml project file in utf8 class Utf8StringWriter : StringWriter { public override Encoding Encoding { get { return Encoding.UTF8; } } } static ProjectFileHook() { ProjectFilesGenerator.ProjectFileGeneration += (string name, string content) => { // parse the document and make some changes var document = XDocument.Parse(content); document.Root.Add(new XComment("FIX ME")); // save the changes using the Utf8StringWriter var str = new Utf8StringWriter(); document.Save(str); return str.ToString(); }; } }
Share the Unity Log Callback with VSTU
共享Visual Studio的输出到Unityusing System; using UnityEngine; using UnityEditor; using SyntaxTree.VisualStudio.Unity.Bridge; [InitializeOnLoad] public class LogCallbackHook { static LogCallbackHook() { VisualStudioIntegration.LogCallback += (string condition, string trace, LogType type) => { // place code that implements your log callback here }; } }