C# 代码编译成dll

在Unity中,如果需要把Debug.Log等日志输出方法封装起来,进行输出筛选,每次点击console窗口的输出都会定位到封装方法的内部。
这个时候可以把封装类代码编译成dll文件,在Unity的console窗口中点击打印出来的字符串,能定位到相应的行,而不是log代码的行。

DevLog封装类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BundleHotFix
{
    public class DevLog  {
        public static bool isShowLog=true;
        public static void Log(string str)
        {
            if(isShowLog)
               Debug.Log (str);
        }
        public static void LogWarning(string str)
        {
            if(isShowLog)
               Debug.LogWarning (str);
        }
        public static void LogError(string str)
        {
            if(isShowLog)
               Debug.LogError (str);
        }
    }
}

cd到代码的目录,使用命令编译代码成dll文件。前提是安装好dotnet sdk。
其中的参数 /Applications/Unity2018/Unity2018.app/Contents/Managed/UnityEngine.dll,是Unity引擎中的dll文件。

mcs -r:/Applications/Unity2018/Unity2018.app/Contents/Managed/UnityEngine.dll -target:library DevLog.cs

使用时通过调用以下代码,在console窗口中点击输出的信息能定位到调动Log方法的行。

DevLog.isShowLog = true;
DevLog.Log("something");

参考

http://www.xuanyusong.com/archives/2782


Author: superzhan
Blog:http://www.superzhan.cn/
GitHub:https://github.com/superzhan
转载时,请注明出处。

1 Reply to “C# 代码编译成dll”

发表评论

电子邮件地址不会被公开。 必填项已用*标注