Unity 6 系で発生し続ける厄介なエラー

2025年5月に Unity 6.1 の安定版がリリースされました。すでにアップデートされた方も、もう少し様子を見てから移行しようと考えている方もいらっしゃるでしょう。

本記事は Unity 6.0 以降を使用しているすべての方に関係する内容です。Unity 6 系のエディタを使っていると、操作するたびにコンソールへ以下のエラーが表示され続ける問題が報告されています。

Assertion failed on expression: '!(o->TestHideFlag(Object::kDontSaveInEditor) && (options & kAllowDontSaveObjectsToBePersistent) == 0)'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

このエラー自体はアプリケーションの動作に直接的な影響を与えるものではありません。しかし、コンソールに常時エラーが表示されていることで、本来注意すべきエラーを見落としやすくなったり、エラーが出ている状態のまま変更をコミットしてしまったりと、開発ワークフロー上の実害を招くことがあります。
筆者も Unity 6.1 の正式版で確認しましたが、残念ながらこのエラーは修正されていませんでした。

原因:英語以外の言語設定

調査の結果、このエラーの原因はエディタの言語設定にあることがわかっています。英語以外の言語(日本語など)を設定している場合にこのエラーが発生します。

対処法

現時点で有効な対処法は以下の2つです。

  1. エディタの言語設定を英語に変更する
    Edit > Preferences > Languages から言語を English に切り替えることで、このエラーは解消されます。日本語 UI に慣れている方には不便かもしれませんが、即座に問題を解決したい場合はこの方法が確実です。
  2. Unity 6.2 の正式リリースを待つ
    現在ベータ版として公開されている Unity 6.2 ではこの問題が修正されているとの報告があります。正式リリースを待つことで、日本語設定のまま問題を解消できる見込みです。

なお、Unity 6.2 で修正済みにもかかわらず Unity 6.0 / 6.1 にバックポートされていないことから、これらの旧バージョンのマイナーアップデートで修正される可能性は低いと考えられます。

まとめ

Unity 6 系で常時表示される Assertion failed エラーは、エディタの言語設定が英語以外の場合に発生するバグです。すぐに解消したい場合は言語を英語に変更し、日本語環境のまま待ちたい場合は Unity 6.2 の正式リリースを待つのが現実的な選択肢です。
表示上だけの問題とはいえ、エラーの見落としにつながる厄介なバグなので、状況に応じて早めに対処しておくことをおすすめします。