【Unity】よくあるコンパイルエラー(CSxxxx)の原因と直し方新着

Unityでスクリプトを書いていると、ConsoleにCS0246やCS0103といった番号付きのエラーが表示されます。 このCSから始まる番号は、C#コンパイラがエラーの種類を区別するためのコードです。 慣れないと原因を理解するのが大変かもしれませんが、 長い英語メッセージを最初からすべて読むより、まず番号を見ると確認箇所を絞れます。 この記事では、Unity開発で遭遇しやすいコンパイルエラーを、エラーになるコードと修正後のコードを並べて説明します。 探している番号やメッセージをページ内検索すれば、該当する項目へ直接移動できます。 Consoleウィンドウの開き方、絞り込み、ファイルと行番号の確認方法は別の記事で解説しています。 記事末尾の関連ページから参照してください。 よくあるコンパイルエラー早見表 エラー 主な原因 CS0246 型、名前空間、パッケージが見つからない CS0103 変数名やメソッド名が現在のスコープに存在しない CS1061 対象の型に指定したメンバーがない CS0029 代入元と代入先の型が一致していない CS0117 型に指定した静的メンバーがない CS0120 インスタンスが必要なメンバーを型から呼んでいる CS0019 指定した型の組み合わせでは演算子を使用できない CS0234 名前空間内に指定した型や名前空間がない CS1002 セミコロンが不足している CS1513 閉じ波括弧が不足している 表の「主な原因」は、最初に調べる場所を示したものです。同じ番号でも、メッセージ内の型名やメンバー名はコードによって変わります。 まずエラー番号とメッセージ内の型名・メンバー名を、手元の表示と照合してください。一致したら、失敗例とコードを比べ、原因に合う確認項目を順に追います。
  • Unity
  • C#
  • エラー

【Unity】Unity CLIでUnityを操作する

Unity CLIは、Unity Hubのデスクトップアプリを使わずに、ターミナルからUnityを操作するための単独のコマンドラインツールです。 Editorのインストールやプロジェクトを開く操作を、コマンド一発で実行できます。 公式ドキュメントはこちらです。 Unity Docs Introduction to the Unity command-line interface (CLI) • Unity command-line interface (CLI) • Unity Docs Install, update, and use the Unity CLI to manage Unity Editors and modules from a terminal. docs.unity.com Unity CLIとは? Unity CLIは、Unity Editorのインストールやプロジェクトの起動といった作業を、コマンドラインから実行できるツールです。 これまでこうした操作はUnity Hubのデスクトップアプリから行うのが基本でしたが、Unity CLIは単独の実行ファイルとして配布され、Hubアプリなしで動作します。 そのため、GUIを持たないCIサーバーやビルドエージェント、ターミナル中心の環境と相性がいいのが特徴です。 ただし、大事な注意点がひとつあります。 Unity CLIは現在 experimental(実験的) な機能で、バージョンも 1.0.0-beta 系のベータ版です(本記事執筆時点の最新は 1.0.0-beta.3)。 仕様やコマンドは今後のリリースで変わる可能性があるため、本番の運用に組み込む前に公式ドキュメントで最新の状態を確認してください。
  • Unity

【Unity】プレハブを極める

プレハブとは? Unityでゲームを作っていると、同じ構成のGameObjectを何度も使い回したい場面が出てきます。 例えば敵キャラ、アイテム、UIのボタンなど、同じものを複数配置するケースは日常的にあるはずです。 プレハブは、GameObjectの構成をアセットとして保存し、テンプレートのように再利用できる仕組みです。 プレハブを作ると、Projectウィンドウにアセットとして保存されます。 このアセットが「オリジナル」で、シーン上に配置したものが「インスタンス」です。 インスタンスはオリジナルと紐付いており、オリジナルを変更するとすべてのインスタンスに反映されます。 逆にインスタンス側で個別に変更を加えることもでき、その変更はOverrideとして管理されます。 この仕組みによって、共通部分はオリジナルで一括管理しつつ、個別の調整もできるようになっています。 Unity Docs プレハブ - Unity マニュアル Unity の Prefab (プレハブ) システムでは、1 つのゲームオブジェクトをそのすべてのコンポーネント、プロパティ値、子ゲームオブジェクトとまとめて、再利用可能なアセットとして作成、設定、保存することができます。プレハブアセットはテンプレートとして機能し、シーン内で新しいプレハブインスタンスを作成できます。 docs.unity3d.com
  • Unity
  • C#

【Unity】Animatorのパラメータ名をハッシュ値で扱う

Animator.StringToHashとは? Animator.StringToHashは、Animatorのパラメータ名をハッシュ値に変換するためのメソッドです。アニメーターを操作するときに毎回文字列を渡すのではなく、起動時に一度だけハッシュ化しておいて、以降はそのハッシュ値で指定する……という最適化の定番テクニックですね。 Unity Docs Unity - Scripting API: Animator.StringToHash docs.unity3d.com SetFloatやSetBool、SetTriggerといった主要なメソッドは、文字列を受け取るオーバーロードと、intのハッシュ値を受け取るオーバーロードの両方が用意されています。後者を使うことで、内部での文字列マッチングを回避できます。 🔗 関連記事 なお、Animation Parametersそのものの種類や使い分け、基本的なキャッシュパターンは別記事でまとめてあります。 【Unity】Animator Parameterの使い方|Float/Int/Bool/Triggerでアニメーション制御 Animation ParametersのFloat・Int・Bool・Triggerの使い方を解説。StringToHashによるパフォーマンス最適化やDamping Timeを使った滑らかな遷移制御も詳しく紹介します。 GARNET LOG 本記事はそこから一歩踏み込んで、Animator.StringToHashの内部動作やstring.GetHashCode/Shader.PropertyToIDとの違い、Stateハッシュへの応用、定数クラスでの管理判断など、最適化テクニック寄りの内容を中心に扱います。
  • Unity
  • C#
  • Animation