Дополнительная информация о функциях, которые изменились и могут повлиять на ваш проект при обновлении с Unity 4 до Unity 5
Блокировка/скрытие курсора
Блокировка курсора и видимость курсора теперь не зависят друг от друга.
// Unity 4.x
Screen.lockCursor = true;
// Becomes this in Unity 5.0
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
Linux
Обработка геймпада была переработана для Unity 5.
Unity теперь может «настраивать» геймпады — либо через базу данных известных моделей, либо с помощью переменной среды SDL_GAMECONTROLLERCONFIG, которая устанавливается Steam Big Picture / SteamOS для геймпадов, обнаруженных или настроенных с помощью его интерфейса.
Настроенные геймпады представляют собой единое расположение: левый джойстик использует оси 0/1, правый джойстик использует оси 3/4, кнопки на лицевой панели геймпада имеют значения 0–3 и т. д. Чтобы определить, настроен ли геймпад, позвоните по телефону Input.IsJoystickPreconfigured().
Windows Store Apps
Ключевое слово «Metro» было заменено на «WSA» в большинстве API, например: 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.
Другие изменения API скриптов, которые нельзя обновить автоматически
UnityEngine.AnimationEvent теперь является структурой. Сравнение с null приведет к ошибкам компиляции.
AddComponent(string) при вызове с переменной не может быть автоматически обновлен до универсальной версии AddComponent
(). В таких случаях средство обновления API заменит вызов вызовом APIUpdaterRuntimeServices.AddComponent(). Этот метод предназначен для того, чтобы вы могли протестировать свою игру в режиме редактора (они делают все возможное, чтобы попытаться определить тип во время выполнения), но он не предназначен для использования в рабочей среде, поэтому создание игры с использованием вызовы такого метода). На платформах, поддерживающих Type.GetType(string), вы можете попробовать использовать GetComponent(Type.GetType(typeName)) в качестве обходного пути. AssetBundle.Load, AssetBundle.LoadAsync и AssetBundle.LoadAll устарели. Вместо этого используйте AssetBundle.LoadAsset, AssetBundle.LoadAssetAsync и AssetBundle.LoadAllAssets. Средство обновления скриптов не может обновить их, так как поведение загрузки немного изменилось. В версии 5.0 все API-интерфейсы загрузки больше не будут загружать компоненты. Используйте новые API-интерфейсы загрузки, чтобы сначала загрузить игровой объект, а затем искать компонент в объекте.
Изменения пакета Unity
Изменился внутренний формат пакета .unityPackages, а также некоторые особенности импорта пакетов в Unity и разрешения конфликтов.
Пакеты теперь создаются только из исходного ресурса и текстового файла .meta, который содержит все настройки импортера для ресурса.
Теперь для пакетов всегда будет требоваться импорт ресурсов.
Пакеты будут значительно уменьшены в размере, поскольку импортированные данные (например, текстуры и аудиоданные) не будут дублироваться.
Пакеты с именами файлов, которые уже существуют в проекте, но с другими идентификаторами GUID, будут импортированы с уникальными именами файлов. Это сделано для предотвращения переопределения в проекте файлов, которые на самом деле пришли из других пакетов или были созданы пользователем.