Unity 4 から Unity 5 へアップグレードする際にプロジェクトに影響を与えるさまざまな機能の変更点の情報になります。
カーソルのロックと可視化はそれぞれ独立して設定できるようになりました。
// Unity 4.x
Screen.lockCursor = true;
// Becomes this in Unity 5.0
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
Unity 5 でゲームパッドの処理に再度手が加えられました。
Unity でゲームパッドの設定が可能になりました - データベースに登録されているモデルか、Steam の Big Picture/SteamOS のゲームパッドの検出や設定するためのインターフェースで SDL_GAMECONTROLLERCONFIG 環境変数を使用します。
設定されたゲームパッドは現在整合性のあるレイアウトになっています:左スティックは軸の 0/1 を使用し、右スティックは軸の 3/4 、ゲームパッドの面にあるボタンは 0–3 というようにです。ゲームパッドが設定されているかどうかは Input.IsJoystickPreconfigured() で判断することができます。
既存の Visual Studio プロジェクトをビルドするとき、IsLocationEnabled、EnableLocationService、SetupGeolocator の定義が含まれていない UnityPlayer.UnityApp はエラーが発生するかもしれません。Location サービスは現在、Unity によって自動で初期化が行われ、OnNavigatedTo メソッドと MainPage.xaml.cs ファイルの SetupGeolocator メソッドからロケーションコードを安全に削除することができます。
API で使用されている多くの ‘Metro’ キーワードが ‘WSA’ へとリプレースされました。例えば: BuildTarget.MetroPlayer は BuildTarget.WSAPlayer、PlayerSettings.Metro は PlayerSettings.WSA になりました。
UNITY_METRO、UNITY_METRO_8_0、UNITY_METRO_8_1 のようなスクリプト定義はまだありますが、UNITY_WSA、UNITY_WSA_8_0、UNITY_WSA_8_1 を使用するようにしてください。
UnityEngine.AnimationEvent は現在は構造体となりました。‘null’ との比較はコンパイルエラーとなります。
AddComponent(string) はジェネリックの AddComponent<T>() へとアップグレードすることはできません。このような場合には API Updater は APIUpdaterRuntimeServices.AddComponent() を呼び出すことで AddComponent(string) の代わりを担います。このメソッドはエディター上でゲームをテストプレイすることはできます(API Updater は実行時に型を解決しようとできる限りの努力をします)がプロダクションでは使用することができません。なのでそれらのメソッドを呼び出すようなゲームをビルドするとエラーとなります。Type.GetType(string) をサポートしているプラットフォームでは、ワークアラウンドとして GetComponent(Type.GetType(typeName)) を使用することができます。
AssetBundle.Load、AssetBundle.LoadAsync、AssetBundle.LoadAll は非推奨となりました。代わりに AssetBundle.LoadAsset、AssetBundle.LoadAssetAsync、AssetBundle.LoadAllAssets を使用してください。Script アップデーターはこれらの細かな変さらによるアップデートを行うことができません。Unity 5 ではすべてのロード API はコンポーネントの読み込みを行いません。ゲームオブジェクトを最初に読み込む新しいロード API を使用すると、オブジェクトのコンポーネントがルックアップされます。
.unitypackage の内部的なパッケージのフォーマットが変更されました。コンフリクトをどう解決するか、Unity にどうやってパッケージをインポートするかの動作が変更されています。
パッケージはソースとなるアセットとアセットのインポーター設定を含む .meta ファイルのみで構成されています。
パッケージは、常にアセットのインポートが必要になります。
インポートされたデータ(例えばテクスチャやオーディオデータ)は2重に取り上げられないため、パッケージは大幅なサイズの削減に繋がります。
プロジェクト内にすでに同じファイル名のファイルがあるけれども、それらのファイルが異なる GUID を持つ場合はユニークなファイル名としてインポートされます。これは異なるパッケージでインポートしたもの、またはユーザーが作成したようなファイルへの上書きを防ぐためです。