Unity 6の新しい命名規則やプリプロセッサディレクティブについて

2024年3月15日に「Unity 6 New Naming Convention」という公式スレッドが、Unity公式フォーラムに投稿されました。そこで、Unity 6の新しいリリース命名規則やそれ関連に関する内容のアナウンスがありました。

今後のUnity 6に関するリリース予定が気になる方、ライブラリ・アセットの制作者でUnity6への対応準備が必要な方は、ぜひチェックしてみてください。

https://forum.unity.com/threads/unity-6-new-naming-convention.1558592/

本投稿では、2024年4月8日時点の「Unity 6 New Naming Convention」スレッドから、内容をピックアップし、私（投稿者）の意見・感想・コメントと合わせて内容を紹介します。

※ 本投稿で紹介した内容は、今後変更される可能性があります。

# 短いまとめ

* Unity 2023 LTSじゃなくて、Unity 6
* 2024年の春（スレッド内では「this Spring」という表記）、Unity 6 Preview（もともとUnity 2023.3 Tech Stream Releaseと呼んでいた）リリース予定
* 2024年の後半（スレッド内では「later this year」という表記）、Unity 6リリース予定
* 「2023.3.1f1」みたいなTechnical Vesion Formatは「6000.0.1f1」のような表記に
* Unity 6 Beta、もうUnity Hubなどからインストールできる
* プリプロセッサディレクティブは、UNITY_6000やUNITY_6000_0_OR_NEWERなど
* Unity 6 Betaの公式ドキュメントは、https://docs.unity3d.com/6000.0/Documentation/Manual/index.html

# おさらい

Unity 6の前に、これまでのリリース種類の命名規則を振り返ります。

近頃のUnityには次のようなリリースの種類・名称がありました。

* 新機能が盛り込まれれるTech Stream Release（例：Unity 2020.2、Unity 2023.1）
* 長期サポートが行われるLTS Release（例：Unity 2021 LTS、Unity 2022 LTS）
* Tech Stream Releaseのベータ版であるBeta Release（例: Unity 2022.2 beta 1）

Unity 2021やUnity 2022などでは、Tech Stream Releaseが2回行われ、その後LTSがリリースされていました。

https://blog.unity.com/ja/technology/new-plans-for-unity-releases-introducing-the-tech-and-long-term-support-lts-streams

さて、もともとUnity 2023は変則的になる予定でした。2024年の4月に「Unity 2023.3」という3回目のTech Stream Releaseが追加でリリースされ、その後2024年の末ごろにUnity 2023 LTSがリリースされる予定でした。

https://blog.unity.com/ja/engine-platform/2023-3-coming-april-2024-with-updates

ところが、その後2023年の11月に開催された、Unite 2023の基調講演中にUnity 2023 LTSではなく、Unity 6になるというアナウンスがされていました。

https://blog.unity.com/ja/news/unite-2023-keynote-game-development-unity-6

# 新しい命名規則

Unity 6では次のようなリリース名称の命名規則になるようです。

* beta、Unity 6 Beta
* preview、Unity 6 Preview
* full release、Unity 6

# Unity 2023.3 Betaではなく、「Unity 6 Beta」

Unity 2023.3 Betaではなくて、「Unity 6 Beta」という名称になったようです。2024年4月8日現在、「6000.0.0b13」というバージョンをUnity Hubからインストールできます。

公式スレッド「Unity 6 New Naming Convention」には、以下のような記載あります。

> Recommended for getting your hands on new features and playing around with them before they’re fully released. NOT recommended for production use.

機能をためすにはちょうどいいですが、プロダクション環境向けでの利用は推奨されていません。どうやら、Betaは今までのBeta版と立ち位置が変わっていないようです。

# Unity 2023.3 Tech Stream Releaseではなく、「Unity 6 Preview」

Unity 2023.3 Tech Stream Releaseではなく、「Unity 6 Preview」という名称になったようです。

公式スレッド「Unity 6 New Naming Convention」には、以下のような記載あります。

> In some other software, this could be considered a “release candidate” but because we plan to spend months of more testing time, we went with the term Preview. We will NOT add any new features or make breaking changes following the release of the Preview.

「Unity 6 Preview」は、他のソフトウェアでは、Release Candidate（リリース候補）とみなされる可能性があるリリースだそうです。またPreviewとなった段階で、機能追加や破壊的変更を行わないそうです。

スレッドでは、Unity 6 Preview

* 開発サイクルが長く、一般提供されている Unity Engine の最新バージョンに移行する予定のチームの利用
* プロダクション環境向けでの利用

も推奨されています。

公式スレッドでは「プロダクション環境向けでの利用」も推奨されていますが、私（本記事の投稿者）は、ゲームやプロダクトの開発スケジュール・リリース時期を考慮して、慎重に検討・検証してからがいいかなと思います。もちろん、ゲームの規模やプロジェクトの状況次第では、試してみるのも非常にいいと思います。何か不具合を見つけたら、どんどんフィードバックしましょう。

また、個人の意見として、「Betaの後にPreviewが来ること」にちょっとびっくりしました。

Preview => Beta => Release Candidate => Release

という順番を想像することが多いです。以前のUnityは「Experimental Preview」という実験的機能の名称を使っていたこともあるので、「Preview」という単語には「今後も破壊的な変更、ガンガン入れるぜ！」みたいなイメージがありました。

# Unity 2023 LTSでも、Unity 6 LTSでもなくて、「Unity 6」

正式リリース版を「Unity 6」と呼ぶそうです。

スレッドによると、「Long Term Support（LTS）」というサフィックスはもうつかないそうです。LTSサフィックスはつきませんが、スレッドには次のような記載があります。

> But it will receive the same level support you enjoy with our current LTS releases.

ということは、従来のLTSのサポート期間である2年間はサポートは続くと思われます。

投稿者の意見としては、サポート期限がもうすこし長いと嬉しいです。また、乗り換え先の安定したバージョン（従来のLTS相当）への乗り換え期間が十分にあると嬉しいです。

Unity 6は正式リリースされていませんが、今後のアップデートやサポート期間・ロードマップについてはまだアナウンスはないかなと思います。とても気になりますね。

# 2023.3.0b1 ではなく、「6000.0.0b1」

2021.3.37f1や2022.3.23f1のようなTechnical Version Foramtがあります。

従来であればUnity 2023.3のBetaは、「2023.3.0b1」のような表記になるはずでしたが、Unity 6 Betaになるため「6000.0.0b1」のような表記となるとのことです。

正式版でもUnity 6でも、「6000.0.Nf1」になるらしいです。

実際、Unity Hubからは2024年4月8日現在、「6000.0.0b13」というバージョンをインストールできますね。

![スクリーンショット 2024-04-07 23.34.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4125/08a66ca7-db35-69c1-d5fe-a60e484b7e36.png)

---

ところで、Unityのバージョンを返すUnityEngine.Application.unityVersionというAPIがあります。

https://docs.unity3d.com/ja/2022.3/ScriptReference/Application-unityVersion.html

Unity 6 Betaの「6000.0.0b13」で試してみたところ、Technical Version Foramtの「6000.0.0b13」を返しました。

# プリプロセッサディレクティブは、UNITY_6000やUNITY_6000_0_OR_NEWERなど

Unityのバージョン表記が変わったことで、ライブラリ・アセット制作者のみなさんが気になるのは、プリプロセッサディレクティブではないでしょうか？

従来は、

* UNITY_2022
* UNITY_2022_3
* UNITY_2022_3_21
* UNITY_2022_3_OR_NEWER

のようなプリプロセッサディレクティブが定義されていました。

https://docs.unity3d.com/ja/2022.3/Manual/PlatformDependentCompilation.html

公式スレッド「Unity 6 New Naming Convention」には、次のようなプリプロセッサディレクティブが定義されるという記載がありました。

* UNITY_6000
* UNITY_6000_0
* UNITY_6000_0_OR_NEWER

Unity 6000.0.0b13で作成した空のUnityプロジェクトのcsprojを見ると、実際に上記のディレクティブが定義されていることを確認できました。

気になるのは 「UNITY_2023_3_OR_NEWER」というディレクティブも定義されていたことです。ここだけ「2023.3」という名称を使うんでしょうか？個人の意見・感想ですが、何か起こりそうなトラブル・問題を避けるために、意図的にプロプロセッサディレクティブを残したのかもしれませんね。

# ウェブサイトもUnity 6向けに

Unity 6 Beta向けのドキュメントが用意されています。

https://docs.unity3d.com/6000.0/Documentation/Manual/index.html

Unity 6向けのIssue Trackerもすでに用意されています。

https://issuetracker.unity3d.com/product/unity/issues?category=&project=175&status=&unity_version=6000.0&view=hottest

# まとめ

今後のUnity 6に関するリリース予定が気になる方は、ぜひ公式フォーラムの「Unity 6 New Naming Convention」というスレッドを見てください。

https://forum.unity.com/threads/unity-6-new-naming-convention.1558592/

Unity 6も気になりますが、今後のアップデート計画・ロードマップも気になりますね。いろいろ新機能を触ったり、プロジェクトをUnity 6にあげる準備を整えていきましょう。