Unity はカスタマイズや拡張が可能な設計になっており、ほぼすべての機能がある程度スクリプト可能です。さまざまなエディタービューで設定できる項目の多くは、コードで相互作用できる public C# クラス表現が対応しています。
エディター API を使用して、エディターオーサリングツールをカスタマイズおよび拡張し、開発ワークフローを改善することができます。エンジン API を使用して、グラフィックス、物理演算、キャラクターの動作、ユーザー入力への応答など、アプリケーションのランタイム機能を定義することができます。
スクリプティング API リファレンスは、すべてのパブリック Unity API について完全で信頼できるリファレンスを提供します。マニュアルには、追加のコンテキストとガイダンスが記載されています。
Unity は C# プログラミング言語でのスクリプティングをサポートしています。C# (C シャープと発音) はマネージ型のオブジェクト指向プログラミング言語で、.NET プラットフォームの一部であり、クロスプラットフォームの .NET ランタイムで実行されます。互換性のある DLL をコンパイルできる場合は、Unity でその他の .NET 言語も使用できます。詳細は、マネージプラグインを参照してください。
スクリプティング環境とは、以下の両方を指します。
スクリプティング環境とツールの詳細については、環境とツールを参照してください。
C# スクリプト (拡張子が .cs のファイル) はプロジェクト内のアセットで、Assets フォルダーに格納され、アセットデータベースの一部として保存されます。一般的な Unity のビルトインタイプから派生したテンプレートスクリプトは、Assets> Create メニューの Scripting サブメニューから作成できます。
デフォルトの外部スクリプトエディターを設定します。これは、Unity がスクリプトアセットを開いて編集するプログラムです。通常、これは Unity の開発用にサポートされている IDE の 1 つです。
作成したコードがアクティブな .NET プロファイルと互換性のある限り、独自の標準の C# タイプとロジックを作成してゲームで使用することもできます。ただし、スクリプトで作成したタイプは、Unity のビルトインタイプから継承するときに Unity で機能を追加できます。
カスタムタイプが UnityEngine.Object から継承されている場合は、Inspector ウィンドウのフィールドに割り当てることが可能です。MonoBehaviour を継承すると、スクリプトをゲームオブジェクトにコンポーネントとしてアタッチし、シーン内のゲームオブジェクトの動作を制御できます。
継承できる Unity の基本タイプの詳細については、Unity の基本タイプを参照してください。
Inspector でのスクリプトの表示とスクリプトコンポーネントの編集の詳細については、スクリプトの検査を参照してください。
コンパイルによって、記述した C# コードが、特定のターゲットプラットフォームで実行可能なコードに変換されます。コンパイルには、自分で制御できる側面とできない側面があります。スクリプトをアセンブリに整理することで、不要な再コンパイルを減らし、依存関係を効果的に管理できます。条件付きコンパイルを使用すると、コードのセクションを選択的にコンパイルに含めたり除外したりできます。
設定に応じて、Unity はさまざまなコンテキストでコードを再コンパイルおよびリロードします。コードのリロードは、変更を反映させたり、編集モードと再生モード間の遷移時にステートを保持したりするために重要ですが、パフォーマンスやイテレーション時間にも影響します。これらのコストを理解し、Unity のコードのリロード動作をどのように設定すればコストを軽減できるかを理解することが重要です。