Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Unityがマルチプラット フォームビルドできる理由は? よく聞くIL2CPPって? 調べてみ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
donabe
July 05, 2025
Technology
23
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unityがマルチプラット フォームビルドできる理由は? よく聞くIL2CPPって? 調べてみました!
2025/7/5 Iwaken Lab. ”プログラミング入門”座談会
donabe
July 05, 2025
More Decks by donabe
See All by donabe
ハッカソン請負人の 開発ルーティンを紹介!
donabe3
0
78
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
340
OutOfRange 【プロトスプリントリーグ】
donabe3
0
97
Unityで都市開発シミュレーションゲーム開発をしてみよう
donabe3
0
470
現実 VS バーチャルのマルチプレイゲームを作ろう
donabe3
0
200
Speech to Textureで 思い通りに世界を改変しよう
donabe3
0
36
院試までなにやったか
donabe3
0
42
XR Interaction toolkit & XRHands & Passthrough API で MR 開発
donabe3
0
290
XRの魅力を語りたい
donabe3
0
62
Other Decks in Technology
See All in Technology
20260619 私の日常業務での生成 AI 活用
masaruogura
1
230
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
140
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
940
2026 TECHFRESH 畢業分享會 - AI-Native 重塑軟體工程與虛擬講師
line_developers_tw
PRO
0
1.2k
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.2k
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
0
150
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
170
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
110
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
3k
フィジカル版Github Onshapeの紹介
shiba_8ro
0
290
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
0
140
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
First, design no harm
axbom
PRO
2
1.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
How to Talk to Developers About Accessibility
jct
2
230
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Building Flexible Design Systems
yeseniaperezcruz
330
40k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Transcript
Unityがマルチプラット フォームビルドできる理由は? よく聞くIL2CPPって? 調べてみました! 2025/7/5 Iwaken Lab. ”プログラミング入門”座談会 土鍋 1
自己紹介 2 土鍋です Unityエンジニアです Unityエンジニアなのに Unityで作られたアプリケーションが動くのか 知らないのはおかしいよなぁ
Unityがマルチプラットフォームビルドできる理由 3 C#をネイティブコードに変換しているから その変換タイミングや方式は様々 ※ネイティブコード→CPUが実行できるマシン語
Monoの登場 4 Windows専用だった.NET Frameworkを マルチプラットフォーム対応するために開発された オープンソースプロジェクト Unityもこれに乗っかって マルチプラットフォーム対応を実現した ※.NETではXamarinに組み込まれてる Xamarinも.NETに統合されて.NET
MAUIという名前になった
IL2CPPの登場 5 Monoの問題点 C#のランタイム性能が低い 20以上のプラットフォームごとの保守が必要 GC動作中のStop the world (実行中の動作停止) Unity独自に開発するぞ!!!
→ IL2CPPの爆誕
スクリプティングバックエンドの比較 IL2CPP Mono 6 JIT(実行時コンパイル) AOT(事前コンパイル) Unity固有 .NET Framework ランタイムコード生成☓
ビルド時間長い ランタイムコード生成◯ ビルド時間短い ※MonoBehaviorとは関係ないよ! 実行時高速 実行時そこそこ
IL2CPPの仕組み 7 C#のコードをIL(中間言語)にコンパイル
ILとは? C# 8 中間言語 ※.NET系以外でも存在する概念 VB F# NativeCode(マシン語) IL .NET系のものはCIL(Common
Intermediate Language)と呼んだりする JIT ILについては深ぼるのはまたの機会に…
IL2CPPの仕組み 9 使用されていないコードを削除し、アプリサイズを縮小
IL2CPPの仕組み 10 ILをC++にコンパイル
IL2CPP.exe 11 マネージド・アセンブリを受け取り、 プラットフォーム固有のC++コンパイラに渡すC++コードを生成する AOTコンパイラ → ILをC++に変換する
IL2CPPの仕組み 12 ランタイム・ライブラリ (C++で記述)
ランタイム ライブラリ 13 ガベージ・コレクタ スレッドやファイルへのプラットフォームに依存しないアクセス 内部呼び出し(マネージド・データ構造を直接変更するネイティブ・コード) の実装などのサービスや抽象化を提供する ちなみにUnityで用いられてるGC Boehm-Demers-Weiser Garbage
Collector https://github.com/ivmai/bdwgc/
IL2CPPの仕組み 14 各種プラットフォームコンパイラでコンパイル
IL2CPPの仕組み 15 アプリ実行ファイルやDLLに紐づけ
IL2CPPとMono実行時の比較 C# Logic 16 IL VES(仮想実行環境) Native C# コンパイラ 各種デバイスに配置
実行時に生成(JIT) 実行時はネイティブコードを動かすだけ なので高速 実行時にJITコンパイル 二回目以降は高速になる Monoランタイム ただAOTのコードは制約が多い
CoreCLR対応 17 IL2CPPはパフォーマンスのために最適化さ れたことはない。 多くのテストから、CoreCLRの方がIL2CPP より確実に速いことがわかっている Unite2024で今後の方針が示された IL2CPPの .NET 8対応
CoreCLRの統合
まとめ 18 いかがでしたか? Unityがなんで各種プラットフォームに ビルドできるのか分かりましたね .NETとUnityの関係が曖昧だった箇所も ついでに知ることができた
参考 19 IL2CPP のしくみ IL2CPP内部の紹介 Unity における .NET の概要 IL2CPPに関する軽い話
Unity開発するにあたって知っておきたいコンパイラのすゝめ