Unity (ゲームエンジン)

レンダリング

グラフィックエンジンはDirect3D (Windows)、OpenGL (Mac, Windows, Linux)、OpenGL ES (Android, iOS)、プロプライエタリのAPIを使用。バンプマッピング、環境マッピング、視差マッピング、スクリーンスペースアンビエントオクルージョン（SSAO）、シャドウマップを使ったダイナミック・シャドウ、テクスチャレンダリング、フルスクリーンポストプロセッシングエフェクトに対応している。
また、3ds Max、Maya、Softimage、Blender、modo、ZBrush、3D-Coat、Cinema 4D、Cheetah3D、Adobe Photoshop、Adobe Fireworks、Allegorithmic Substanceのアートアセットとファイル形式に対応しており、これらのアセットをゲームプロジェクトに追加したり、Unityのグラフィカルユーザーインターフェースで管理することができる。
ShaderLabの言語はシェーダーのために使用され、固定機能パイプラインとGLSLやCg/HLSLで書かれたシェーダープログラム両方の宣言型「プログラミング」に対応している 。シェーダーは複数のバリエーションや宣言されたフォールバック仕様を含むことができるため、Unityは現在使用しているビデオカードに最もよいバリエーションを検出したり、互換性が無い場合でも性能を出すために機能を犠牲にできる代替のシェーダーにフォールバックすることができる。
また、NVIDIA（かつてはAgeia）のPhysX物理エンジンを内蔵サポートしており、Unity 3.0では任意メッシュおよびスキンメッシュでのリアルタイムクロスシミュレーション、シックレイキャスト、衝突レイヤーへの対応が追加された。

IL2CPP

IL2CPPはUnity社が独自開発したScripting Backendである。IL2CPPを用いた場合、フロントエンドによって生成されたILはネイティブコードに（JITあるいはAOTで）変換されるのではなく、C++コードへといったん変換される。その後C++コンパイラによってネイティブコードにコンパイルされる。

Burst

最適化されたC#スクリプトを対象にしたコンパイラバックエンドとしてBurst（Burst Compiler）がある。
BurstはUnity2019.1から正式提供されているバックエンドである。BurstはILをLLVMを介してネイティブコードへコンパイルする。いくつかの制限が課せられたC#（HPC#）スクリプトを書きBurstコンパイラを用いることで、従来（例: Mono）に比較して最大10倍程度の高い性能を得ることができる。内部的には、BurstはILからLLVM IRへのトランスパイルを担っており（つまりLLVM目線ではBurstはCIL to IRのコンパイラフロントエンド）、以降の段階でLLVMによる最適化・ネイティブコード生成をおこなうことで非常に高い性能を実現している。

C# Job System

C# Job SystemはUnity 2018.1より導入された、C#スクリプトの並列計算支援システムである。C# Job Systemを用いることで、並列計算につきまとう競合やデッドロックを避けながら高い演算性能を利用することができる。
IJobと NativeContainerを基本的な型とする。IJobを継承した構造体であるJobのExecuteメソッドで処理を定義し、インスタンス化したJobのScheduleメソッドをメインスレッドにて呼ぶことで、Unityが内部的に提供するJob QueueへJobが登録される。計算結果はJobへの入力として渡したNativeContainerを介して取得できる。NativeContainerはガベージコレクションの対象外であるため、結果取得後はNativeContainerを破棄する必要がある。
C# Job SystemはBurstコンパイルとの共用を念頭に設計されており、C# Job Systemで並列化したコードをBurstコンパイルによって最適化すれば非常に高い並列演算性能を得ることができる。2010年代からコンピュータのコア数は増加傾向にあるため、高い並列演算性能を生かして経路探索やアニメーションなどで有効利用できる。例えばAnimation Rigging パッケージのコンストレイント（IKなど）はC# Job Systemを用いて実装されている。

廃止されたスクリプティング言語・機能

かつてはC#以外にUnityScript（ECMAScriptの影響を受けた構文のカスタム言語）およびBoo（Pythonの影響を受けた言語）も使用可能だった。しかしUnity2018.3をもって完全に廃止されている。また3.0のリリースが始まり、Unityはデバッギングスクリプト向けにMonoDevelopのカスタマイズバージョンを公開した。現在ではMonoDevelopの利用は廃止されている。

アセットトラッキング

UnityにはまたUnity Asset Serverという開発者のゲームアセットとスクリプト向けバージョンコントロールソリューションが含まれている。これはバックエンドにPostgreSQLを使用し、オーディオシステムはFMODのライブラリ（Ogg Vorbis圧縮オーディオの再生が可能）で構築され、ビデオ再生はTheoraコーデックを使用、地形と植生エンジン（樹木のビルボーディングやUmbraを使ったオクルージョンカリングに対応）、Beastを使った内蔵ライトマッピングやグローバルイルミネーション、RakNetを使用したマルチプレイヤーネットワーク、内蔵パスファインディングナビゲーションメッシュを使用している。

プラットフォーム

複数のプラットフォームに対応しており、プロジェクトにおいて、開発者は携帯機器、ウェブブラウザ、デスクトップ、ゲーム機への配信をコントロールすることができる。また、ゲームが対応している各プラットフォーム用のテクスチャ圧縮や解像度設定を指定することができる。

アセットストア

2010年11月にスタートしたUnity Asset StoreはUnity editorで利用可能なリリースである。このストアには3Dモデル、テクスチャ、マテリアル、パーティクルシステム、音楽、効果音、チュートリアル、プロジェクト、スクリプティングパッケージ、エディタエクステンション、オンラインサービスといった4,400以上のアセットパッケージがある。
また、多くのエクステンション、ツールやタシャレン・エンターテインメントによるNGUI: Next-Gen UIのようなアセットパッケージ、デトックス・スタジオのuScriptといったビジュアルスクリプティングエクステンション、Tidy Tile Mapper、ドップラー・インタラクティブの2D/3Dタイル型ゲームデザインエクステンション、FingerGesturesという入力スクリプティングパッケージもストアで入手できる。

バージョン

最初のバージョンは2005年にアップルのWorldwide Developers Conferenceで提供が開始された。Macコンピュータ上で機能やプロジェクトを構築するもので、他のプラットフォーム用のエンジンやツールの開発を継続するのに十分な成功を得た。2010年9月にUnity 3が公開、これはハイエンドなスタジオが所有しているツールを多く導入することに力を入れたものだった。また、自社がインディーズや小規模チームにゲームエンジンを手頃な価格のパッケージとして提供しながら大手の開発企業の関心を取り込むことができた。2012年終わり頃に公開されたバージョン4.0ではMecanimアニメーションやDirectX 11などへの対応がなされた。

Unity 3.5

Unity 3.5はUnityの開発プラットフォームに向けた最も大規模なリリースの1つで、既存技術向けに新機能や改善が図られ、Shurikenパーティクルシステム、経路探索向けのNavMesh、障害物回避、線形空間（ガンマ補正）ライティング、HDRレンダリング、マルチスレッドレンダリング、ライトプローブ、Google Native Clientへの対応、再記述されたオクルージョンカリング、詳細度のビルトイン対応、Adobe Flash Playerのアドオンプレビュー、GPUプロファイラー、指向性ライトマップがそれに当たる。

Unity 4

2012年6月18日に発表されたUnity 4では当初の公開ではいくつかの新機能が追加されることになっていた。リリースサイクルは過去のリリースのようにライフスパンの過程で機能追加などの複数のアップデートがされる予定だったが、将来の4.xのアップデートにより新しいGUIが保留となり、結局リリースされたのは2012年11月14日だった。
DirectX 11の対応やMecanimアニメーションといった新機能が加わった。モバイルグラフィックの機能強化として、リアルタイムシャドウ、スキンメッシュのインスタント化、ライトマップをベイク（焼き込み）したときに通常のマップを使用する機能、GPUプロファイラーの改善が実行された。さらに、Adobe Flashのアドオン対応もなされたが、既にUnity 3.5互換のベータ版ツールで可能となっていた。それでも対応アドオンの最終版ではUnity 4でしか動作しないようになっている。
Unity 4にはまた、デスクトップにゲームを公開するためのオプションも搭載された。アドオンを展開する時は潜在的にLinuxの様々な形式で動作し、主にUbuntuで動作させることに主眼を置いている。この展開オプションは追加料金無しでUnity 4の全ユーザーに提供される。Unityを使う技術者はゲームの標準的なチームにおいてUbuntuを使って作業をしている。バージョン4以降、自身のUnity Web Playerを通したソーシャルプラットフォームで改善したUnityのエクスペリエンスを立ち上げるためにFacebookを使った協働作業が行われている。

Unity2017

2017年7月11日にリリース開始。今まではUnity3,Unity4,Unity5とバージョンで続いて来たがこのサイクルは終了し、Unity2017と発表された。今後はUnity2017.xのサイクルとなる。

Mecanim

MecanimとはUnityのアニメーション技術で最初の数年間は同名企業が手がけていたが、その後買収によりUnityのカナダオフィスが手がけている。この技術は効率的なインターフェイスでキャラクターを流体的かつ自然的に動かすように構築している。またMecanimにはステートマシンやブレンドツリー、IKリギングを生成するツールが含まれ、Unity editorでアニメーションを自動的にリターゲットできるようになっている。
加えて、リターゲット可能なアニメーションのアレイはツールの起動時にUnity Asset Storeで入手できるようになっている。これらのアニメーションファイルの多くはモーションキャプチャーで使用され、ユニティ・テクノロジーズによって無料で提供されている。

Unity2019

2019年4月15日にリリース開始。

ライセンス

開発者向けにUnity PersonalとUnity Proの2種類のライセンスがある。Proバージョンは1500ドルだが、Personalは無料でダウンロードできる。プロバージョンではUnity Cloud Build、Unity Analytics Pro、早期ベータアクセスといった機能が利用可能になる。一方無料バージョンではスプラッシュスクリーン（スタンドアロンのゲームにおいて）やウォーターマーク（ウェブゲームにおいて）の表示を変更や解除することができない。
Unity PersonalとUnity Proは両方とも開発環境、チュートリアル、サンプルのプロジェクトとコンテンツ、ウェブフォーラムを通したサポート、ウィキアクセス、同じメジャーバージョンへの将来的なアップデート（例としてUnity Pro 5を購入したら将来出る全てのUnity Pro 5.xへのアップデートが無料）が含まれている。
Android、iOS、Adobe Flash Player、Windows Phone 8（開発中）版Unityは既に購入したUnityのアドオンとして提供されている。Unity ProライセンスはAndroid ProやiOS Proのライセンスを購入するために必要である。通常のAndroid、iOS版のライセンスはUnityの無料バージョンで使用可能である。
ソースコードのライセンスはケースバイケースでの交渉となる。また、PlayStation 3、PlayStation 4、Xbox 360、Xbox One、Wii Uなどのコンシューマ機に関しては、プラットフォームを提供している企業とのライセンス契約などが必要となる。
また、2016年1月8日からは、パチンコ・パチスロを含む日本国内の遊技機およびアーケードゲーム機開発用ライセンス「Unity for 遊技機」の販売も開始された。

ゲーム以外での使用例

Unityはコンピュータゲーム以外のソフトウェアの製作でも使用されており、このようなソフトウェア開発の事例は「Unityソリューションカンファレンス」というイベントの中でも紹介されてきた。
たとえば、2013年にチームラボが発売したアプリ「teamLabBody」の開発にはUnityが使われており、生きた人間の骨格の動きや人体の形態を学ぶことができる。
また、アイドルグループ・妄想キャリブレーションの2014年のシングル『魔法のジュース』のミュージックビデオにおけるメンバーのスカートは歌に合わせてスカートを光らせる仕組みになっており、リアルタイムの音声解析にはUnityが用いられた。さらに、2015年に発売された同グループの『幻想恋花火』のミュージックビデオでは番傘に花火や文字を光らせる場面でUnityが使われたほか、制作時はUnityで撮影現場と似た空間を作ったうえでシミュレーションを繰り返した。
東映アニメーション制作のテレビアニメ『魔法つかいプリキュア!』後期エンディングの動画制作にUnityが使われた。

ゲームへの出演

これまでに「ユニティちゃん」は様々なゲームに出演しており、たとえば2015年7月31日から2015年8月17日に開催された『乖離性ミリオンアーサー』の期間限定イベントにはボスキャラクターおよびクリア記念ユニットとして登場した。
また、2015年8月27日に発売されたWii U用ゲームソフト『Runbow』では、ユニティちゃんがプレイヤーキャラクターとして登場した。