在Unity中,一般都会自己手动封装一次日志,或者自定义一些日志输出,比如lua代码的日志输出,双击开启时我们希望重新定向的其他的文件,而不是封装代码里,这里要用到的主要是[OnOpenAssetAttribute(0)],每次文件开启时,先执行自定义的代码,代码里自己重定向文件和行数,然后再选择开启。对于Unity控制台,我们还要用反射取得对应的日志内容。
直接上代码,使用时直接修改logCSName变量,将自己封装的日志类写入即可。
using System.Reflection;
using UnityEditor;
using System;
using UnityEditor.Callbacks;
public class LogRedirect
{
private const string logCSName = "MyLog.cs";
private static object logListView;
private static EditorWindow consoleWindow;
private static FieldInfo logListViewCurrentRow;
private static MethodInfo LogEntriesGetEntry;
private static object logEntry;
private static FieldInfo logEntryCondition;
private static int openInstanceID;
private static int openLine;
private static bool GetConsoleWindowListView<