yotiky Tech Blog

とあるエンジニアの備忘録

Unity - ZLoggerを導入する

目次

検証環境

  • Unity 2022.3.21f1
  • ZLogger 2.4.1
  • ZLogger.Unity 2.4.1
  • CsprojModifier 1.2.1

github.com

github.com

導入

  • NugetForUnityをインストール
  • NugetForUnityで以下をインストール

    • ZLogger

  • Project Settings > Package Manager を設定

    • OpenUPM
    • https://package.openupm.com
    • com.cysharp

  • Package Managerで以下をインストール

    • CsprojManager
    • ZLogger.Unity

  • 次の内容をcsc.rspのファイル名でAssets/直下に作成する

    • asmdefを定義している場合は、asmdefと同じフォルダへ配置
    • Unity 2022.2以降

      -langVersion:10 -nullable
      
    • Unity 2022.3.12f1以降でC#11を使いたい場合

      -langVersion:preview -nullable
      

  • 次の内容をLangVersion.propsのファイル名でルートフォルダに作成する

    • C#11を使う場合は<LangVersion>11</LangVersion>
      <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
          <PropertyGroup>
              <LangVersion>10</LangVersion>
              <Nullable>enable</Nullable>
          </PropertyGroup>
      </Project>
    

  • Project Settings > Editor > C# Project Modifier

    • CsprojManagerは、propsファイルで指定した内容を、登録したcsprojに挿入する
    • Additional project imports に作成したpropsファイルを登録
    • asmdefを定義している場合は、The project to be added for Import に登録

実行

サンプルコードを作って適当なGameObjectに追加する

public class LoggerTest : MonoBehaviour
{
    void Start()
    {
        var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder.SetMinimumLevel(LogLevel.Trace);
            builder.AddZLoggerUnityDebug();
        });

        var logger = loggerFactory.CreateLogger<LoggerTest>();

        var name = "foo";
        logger.ZLogDebug($"Hello {name}!");

        Debug.Log($"Hello bar from Unity");
    }
}

実行結果

参考