質問するログイン新規登録

Q&A

解決済

1回答

425閲覧

Unity 6 LTS + Git clone 環境で公式 Package の C# が文字化けし、コンパイルエラー(CS1010 など)が発生する

MAKI

総合スコア3

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

0グッド

0クリップ

投稿2026/02/01 04:52

0

0

問題概要

Unity 6 LTS(6000.3.xf1)環境において、GitHub から clone したプロジェクトを開くと、Library/PackageCache 以下に展開される Unity 公式 Package の C# ソースコードが文字化けし、コンパイルエラー(CS1010 など)が発生する問題が起きています。

新規作成した Unity プロジェクトでは問題は発生せず、git clone 経由で取得したプロジェクトのみで再現します。

発生環境

  • OS: Windows 11(日本語環境)
  • ファイルシステム: NTFS
  • Unity Hub: 最新版(問題発生時点)
  • Unity Editor:
    • 6000.3.2f1(問題発生)
    • 6000.3.6f1(Editor 更新により一部改善するが、clone 環境では再発)
  • Git: Git for Windows
  • リポジトリ: GitHub(HTTPS clone)
  • .gitignore: Unity公式テンプレート準拠(Libraryディレクトリ等を対象外)
  • .gitattributes: Unity向け設定+Git LFS(テキストは LFS 対象外)

※6000.3.2f1 から 6000.3.6f1 にアップデートした理由として、本調査の途中で Package Manager で一部のパッケージが Invalid になる現象が現れ、以下ページを参考にアップデートを行っています。
(直接関係は無さそうでしたが、念のため実施しています)

◆6000.3.5f2 Release Notes (Fixes 一部抜粋)
Package Manager: Resolved a bug causing valid package signatures to be flagged as invalid if validated after the signing certificate expired. (UUM-133005)

◆参考にしたスレッド
Package manager invalid signatures issue

具体的な症状

Library/PackageCache 内の C# ファイルで文字化けが発生する
例のパス:

Library/PackageCache/com.unity.inputsystem@xxxx/ InputSystem/Editor/Internal/AdvancedDropdown/AdvancedDropdownGUI.cs

該当箇所の例:(41行目)

public static readonly GUIContent arrowLeftContent = new GUIContent("笳?
  • ダブルクォーテーションが途中で途切れる
  • 本来存在するはずの Unicode 記号(矢印等)が破壊されている

発生するコンパイルエラー:

error CS1010: Newline in constant error CS1026: ) expected error CS1002: ; expected
  • 「該当箇所の例」の通り、ダブルクォーテーションが途切れている為にエラーが発生する
  • 以下ファイルでも同様に問題が発生しており、ダブルクォーテーションを追記すれば無理やり解消は可能
    • com.unity.visualscripting@191c0d7e3b69\Editor\VisualScripting.Core\Plugin\Changelogs\LegacyLudiqGraphs\Changelog_1_1_2.cs
    • com.unity.shadergraph@3e48e962d639\Editor\Drawing\Blackboard\BlackboardUtils.cs
    • com.unity.shadergraph@3e48e962d639\Editor\Drawing\Controls\EnumConversionControl.cs

試したこと

Git / Encoding 関連の調査

  • .gitignore に Library が含まれていることを確認 → OK
  • .gitattributes に .cs を LFS 対象にしていない → OK
  • git config --global i18n.commitEncoding → 未設定(問題なし)
  • CRLF / LF 設定を確認 → 問題なし

Unity 関連の調査

  • 新規 3D プロジェクトの作成 → 本現象発生せず(AdvancedDropdownGUI.cs 等を確認しダブルクォーテーション抜け・文字化けが無い事を確認)
  • LibraryディレクトリとPackages/packages-lock.json の削除と起動 → 本現象が発生

OS / 環境関連の調査

  • Windows「Beta: UTF-8」設定 → ON(効果なし)
  • NTFS / exFAT 確認 → NTFS(問題なし)
  • Windows 時刻同期 → 実施済み
  • VPN → 未使用
  • Proxy 自動検出 → OFF(効果なし)

補足情報

Github 上では Library ディレクトリを保存しないようにしている為、プロジェクト一式をクローンした物を Unity が開く際に Package Manager が Library/PackageCache に各種 package を展開しますが、おそらくサーバーから取得した圧縮ファイルを展開するタイミングで文字化けをしてしまっているのではないかと考えています。
新規のプロジェクトを作成した場合は、問題が発生しないので、別経路で package が用意されている為に問題が発生しないと解釈しています。(この辺りの詳細な仕組みが不明なので推測になってしまいますが)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

hiroki-o

2026/02/01 08:07

まず、文字化けかファイルが壊れているのか、切り分けたほうがよいと思います。 該当のファイルをメモ帳やサクラエディタ等のテキストエディターで開いた場合、実際の文字コードは何ですか? あるいは、文字化けではなく本当に途中で切れていますか? (C#にもUnityにも明るくないので、文字化けだけに反応しました)
MAKI

2026/02/01 12:15

コメントをして頂いた事で、根本原因に到達し、解決する事が出来ました。 とても助かりました。本当にありがとうございました。
guest

回答1

0

自己解決

先ず、Unity のエディタ上でコードのプレプレビューを表示する際に、UTF-8(BOM付き)で保存する必要があります。

そこで、Unity の管理下にあるディレクトリの中に新規のファイルが生成された場合に
自動で UTF-8(BOM無し) を UTF-8(BOM付き) で保存しなおす Unity のエディタ用ツールを作成して利用していました。
AssetPostprocessor.OnPostprocessAllAssets を利用して実装

それが、自前のコードを管理しているディレクトリ配下だけではなく、
Unity 側で管理しているディレクトリ配下にも適用されてしまっていた事でこの問題が起きていた様です。


◆文字化けが起きるプロジェクト環境
ファイル形式:UTF-8(BOM付き)

public static readonly GUIContent arrowLeftContent = new GUIContent("笳?");

◆文字化けが起きないプロジェクト環境(プロジェクト新規作成で生成されるファイル)
ファイル形式:UTF-8

public static readonly GUIContent arrowLeftContent = new GUIContent("◂");

★UTF-8(BOM付き) で保存しなおすツールは配置前で、
プロジェクトを作成した時点の既に存在するファイルには影響が無い作りの為。


Github からクローンしてきた際に、UTF-8(BOM付き) で保存しなおすツールの機能をコメントアウトで無効化してからプロジェクトを開いた所、問題が発生していた Package のファイルが UTF-8(BOM無し)で保存され、文字化けは発生しない事を確認しました。

投稿2026/02/01 12:20

MAKI

総合スコア3

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問