[Unity] error CS1061: 'Material' 'rawRenderQueue' が定義されていないエラーが新規プロジェクトでも発生する場合の対処法
はじめに
先日、ハッカソンでUnityを使い、PLATEAU SDKを導入した際に error CS1061: 'Material' does not contain a definition for 'rawRenderQueue' というエラーに遭遇しました。
再起動や再インストールを試みても解決せず、最終的に Unity Hubの不適切なアンインストールが原因だと分かりました。同じエラーで困っている方のため、解決した手順を以下にまとめます。
発生したエラー
error CS1061: 'Material' does not contain a definition for 'rawRenderQueue' and no
accessible extension method 'rawRenderQueue' accepting a first argument of type
'Material' could be found (are you missing a using directive or an assembly reference?)
エラーメッセージの示す通り、「'Material'クラスに 'rawRenderQueue' という定義が見つからない」という内容です。
症状
- PLATEAU SDK をプロジェクトに導入したタイミングでエラーが発生。
- SDKで読み込んだモデル(建物)のテクスチャが部分的に表示されず、ピンク色になる。
- Unity EditorやPCを再起動しても改善しない。
- 【最重要】Unityで新規プロジェクトを作成した直後でも、同じCS1061エラーが発生する。
特に症状4が発生した場合、プロジェクト内のアセットやコードではなく、Unity Editor本体、またはUnity Hubのインストール環境が破損している可能性が極めて高い。
原因と誤った対処法
このエラーが新規プロジェクトでも発生したことから、原因はプロジェクト側ではなくUnityの環境そのものにあると推測できました。
私のケースでは、過去にUnity Hubをアンインストールした際、正規のアンインストーラー(Uninstall Unity Hub)を使わず、Program Files 内のUnity Hubフォルダを手動で削除していました。
この「不適切なアンインストール」により、レジストリや関連コンポーネントが不完全に残り、Unity Hubを再インストールしても環境が正常に復元されない状態になっていました。
解決手順
Unity HubおよびEditorのインストール環境をクリーンにするため、以下の手順で完全な再インストールを行いました。
- (任意)Unity Hubを起動し、既存のプロジェクトやインストール済みのEditorバージョンをリストから削除します。
- Windowsの「設定」 > 「アプリ」 > 「アプリと機能」(またはコントロールパネル)を開きます。
- リストから
Uninstall Unity Hubを見つけて実行し、正規の手順でアンインストールします。 - PCをシャットダウンします。(再起動ではなく、一度電源を完全に切ることを推奨します)
- PCを再度起動します。
- Unityの公式サイトからUnity Hubの最新版をダウンロードし、インストールします。
- Unity Hubから必要なバージョンのEditorをインストールします。(私の場合は
2022.3.47f1で解決しました)
この手順で環境をクリーンにした結果、新規プロジェクトでエラーは発生しなくなり、PLATEAU SDKを導入したプロジェクトも正常に動作するようになりました。
まとめ
CS1061 のような基本的なクラス定義が見つからないエラーが新規プロジェクトを作成した直後から発生する場合、まずはUnity HubやEditorのインストール環境が破損していないかを疑ってみてください。
私のような初心者がやってしまうことがあるかもですが、アンインストールを行う際は、フォルダの手動削除ではなく、必ず公式の Uninstall Unity Hub を利用して削除して下さい。
