2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZLoggerをUnity6で動かす

Posted at

ZLoggerはC#10以上を前提としてるのでそのままではUnityでは使えず軽くhackする必要があります。
Unity2022あたりだとだいたい公式に書いてある通りやればOKなんですがUnity6ではちょっと手順が違ったので備忘録としてメモしときます。

Unity 6000.1.4f1
IDE Rider 2025.2.2

まず公式にある以下の手順から、CsorojModifierが不要になります。

Install NuGetForUnity

ZLogger入れただけではUnityからもIDEからもC#9じゃだめだよ〜って怒られます。

Hoge.cs(10,1): error CS8773: Feature 'file-scoped namespace' is not available in C# 9.0. Please use language version 10.0 or greater.

それぞれ別の対応をしていきます。

Unity側

ZLogger公式に書いてあるとおりcsc.rspを置けばOKです。Assembly Definition使ってる場合は使ってるディレクトリ毎に置く必要があります。

csc.rsp
-langVersion:10.0

余談:11を指定するとerror CS1617: Invalid option '11' for /langversion. Use '/langversion:?' to list supported values. とエラー。Unity 6000.1.2fで使えるC#バージョンを調べた所以下の感じでした・
latestmajor, preview, latest共に10を指すようです。というわけで大人しく-langVersion:10.0にしときます。

$ /Applications/Unity/Hub/Editor/6000.1.4f1/Unity.app/Contents/NetCoreRuntime/dotnet \
  exec /Applications/Unity/Hub/Editor/6000.1.4f1/Unity.app/Contents/DotNetSdkRoslyn/csc.dll "/langversion:?"

サポートされる言語バージョン:
default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0
9.0
10.0 (default)
latestmajor
preview
latest

IDE側(Rider)

Unity2022などではIDE側の対応のためにCsprojModifierを使って*.csprojを書き換える感じでしたがこの手順は不要でAssetsと同階層にDirectory.Build.targetsというファイルを置きます。

Directory.Build.targets
<Project>
  <PropertyGroup>
    <LangVersion>10.0</LangVersion>
  </PropertyGroup>
</Project>

これがあればcsprojの設定を上書きしてくれるようです。

ちなみにDirectory.Build.targetsというのもあってこちらはcsprojの設定より前に読まれるらしいですが、実がこのファイルを置いてもIDEのエラーが解消されてしまいました。謎。

余談1:Unity 6000.1.2fでもCsprojModifierを使ってみたんですけど書き換えが効いてくれませんでした。issueに上がってるのと同じ状況です。

余談2: Unity2022.3.61f1でもCsprojModifier使わずDirectory.Build.targetsで対応出来ました。このあたりはUnityがどうのこうのというよりはIDE(Rider)側がDirectory.Build.targetsに対応したってことなんでしょうか?ふんわり理解なのでよくわからず。

おわりに

Unity 6.3からUnity LoggingパッケージがDeprecatedになった
Unity公式のUnity LoggingパッケージがまさかのDeprecatedってことで移行が必要になる方はZLogger使っていきましょう。
Cysharp様いつも最高のSolutionをありがとうございます!死ぬほどお世話になってます。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?