Upgrade engine to Unity 6 (6000.3.16f1)#1511
Open
rohitkulkarni97 wants to merge 18 commits into
Open
Conversation
Mechanical baseline from opening the project in Unity 6000.3.16f1: - ProjectVersion.txt: 2021.3.15f1 -> 6000.3.16f1 - manifest/packages-lock: package upgrades + Unity 6 module additions (ai.navigation, multiplayer.center, accessibility, adaptiveperformance, vectorgraphics); textmeshpro folded into ugui 2.0.0 - ProjectSettings.asset: settings migrated by the upgrade - MultiplayerManager.asset: new Multiplayer settings asset - boot.config: removed (was empty) Does not compile yet; engine-API compile fixes follow in later commits.
[SerializeField] was applied to the enum type, which the Unity 6 Roslyn analyzers reject (SerializeField's AttributeUsage targets fields only). The attribute was a no-op on an enum, so removing it is behavior-neutral.
Unity's API updater renamed Animator.keepAnimatorControllerStateOnDisable to keepAnimatorStateOnDisable (same semantics) in Item.OnStart.
Unity 6 added UnityEngine.UIElements.TreeView, making the unqualified TreeView (the IMGUI control the plugin uses) ambiguous. The offending 'using UnityEngine.UIElements;' was unused, so removing it resolves the ambiguity without altering any plugin logic.
Auto-generated by InputActionCodeGenerator v1.19.0 from Controls.inputactions during the Input System 1.4.4 -> 1.19.0 upgrade; no manual edits.
ProjectSettings: scripting-define map gained new platform rows (VisionOS, Switch 2, QNX, etc.). ShaderGraphSettings: new shaderVariantLimit / customHeatmapValues fields. Auto-migrated on upgrade.
Reimport pruned 10 dangling entries (GUIDs resolving to no existing asset) and registered 5 existing clothing prefabs (ShoeHiTops, ShoeJackboots, Headset, HeadsetSecurity, GloveInsulated). 216 -> 211 entries; content-only, no GUID regeneration.
TextMeshPro merged into com.unity.ugui 2.0.0 in Unity 6; re-imported its Essential Resources. GUIDs unchanged (no broken references); TMP Settings migrated to assetVersion 2 (m_enableWordWrapping -> m_TextWrappingMode plus new default-valued fields) with default font/sprite/style-sheet references preserved. Adds URP/HDRP SDF shader graphs, SDFFunctions.hlsl, and a 2-pass mobile shader.
Bulk ForceReserializeAssets() pass (run headless in batch mode) migrating prefabs, scenes, materials, animations, localization and other Assets/ content to the Unity 6 serialization format. Mechanical; no behavioural changes.
Re-saved ProjectSettings/*.asset (Physics2D, etc.) to the Unity 6 serialization format.
PluginImporter metas under Packages/com.coimbrastudios.internal bumped to serializedVersion 3 by the reserialize pass.
AddressableAssetGroupSortSettings.asset persists the editor display order of Addressable groups; auto-generated by the Unity 6 Addressables version. No runtime or build effect.
Generated by the Scriptable Build Pipeline on the first Unity 6 build (cache-server off, V2 hasher, archive threading). Defaults committed per Unity's convention of versioning ProjectSettings/.
Replace the UnityToolbarExtender-based IMGUI toolbar buttons with native [MainToolbarElement] tools for Unity 6 (6000.3): - SceneSwitcherTool (left): dropdown to load any scene in Scene.Names. - LauncherTool (right): button toggling ApplicationSettings.ForceLauncher. - NetworkSettingsTool (right): dropdown for NetworkType and ServerPort. The native toolbar caches element content, so each tool polls EditorApplication.update and calls MainToolbar.Refresh when its underlying settings change, restoring the live updates the old per-frame IMGUI toolbars provided.
The editor toolbar tools were migrated to Unity 6's native MainToolbar API, so the UnityToolbarExtender plugin is no longer referenced. Delete the plugin and drop its now-dead assembly reference from SS3D.Utils, SS3D.SceneManagement, SS3D.Editor, SS3D.Core, and SS3D.Application.
After migrating the toolbar tools to Unity 6's native MainToolbar API, returning developers can miss that the Scene Switcher, Launcher and Network Settings moved off the old plugin's toolbar. Show a one-time-per-session dialog pointing them to the native main toolbar. Gated by SessionState (once per editor launch) and EditorPrefs (permanent opt-out via the Don't show again button), and skipped in batch mode. This is disposable migration scaffolding, to be removed once the upgrade has propagated.
Add an Editor Tools section listing the Scene Switcher, Launcher and Network Settings toolbar tools and how to enable them on Unity's native main toolbar.
Addressables 2.x (the project is on 2.9.1) removed support for the Built In Data group, so its EditorSceneList and Resources entries are no longer serialised. The project loads Resources via Resources.LoadAll (TileResourceLoader) and scenes via SceneManager.LoadScene (Scene), and has no runtime Addressables loading, so dropping these entries has no functional impact.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades the project from Unity 2021.3.15f1 to Unity 6 (6000.3.16f1), along with every migration artifact the new editor requires: package upgrades, API compile fixes, asset/ProjectSettings reserialization, and a rewrite of the editor toolbar tools onto Unity 6's native main-toolbar API.
The diff is large by file count (~2.2k files) but the hand-written surface is small: most of it is Unity mechanically reserializing
.meta,.assetand prefab YAML into the Unity 6 format. The authored changes are the toolbar-tool migration, three small Unity 6 compile fixes, the README, and a disposable in-editor migration notice.Includes the full engine upgrade and its migration artifacts. Does not include any gameplay or feature changes.
PR checklist
Pictures/Videos
Testing
Sceneclass.Networking checklist
Changes
Engine & packages
2021.3.15f1->6000.3.16f1.1.19.0; regeneratedControls.cs.2.0; reimported TMP Essential Resources.2.9.1; added the group sort-order asset and Scriptable Build Pipeline settings.Compile fixes (Unity 6 API)
ContainerTypecompile error.TreeViewambiguity in Hierarchy 2.Editor toolbar migration (main authored change)
UnityToolbarExtenderplugin to Unity 6's nativeMainToolbarAPI, and removed the now-unused plugin.Generated / reserialized data (mechanical -- the bulk of the diff)
DefaultPrefabObjectsregistry (importer output, not a hand edit).EditorSceneList/Resourcesentries from Built In Data.asset: by-design in Addressables 2.x (thePlayerDataGroupSchemawas removed), affecting only what is exposed to the Addressables catalog. The project loads viaResources.Load*and the build-settings scene list with no runtimeAddressables.Load*, so there is no functional impact.Reviewing ~2.2k files: read the 18 commits in order -- they are atomic and self-describing. Concentrate human review on the toolbar-migration and compile-fix commits (the authored code); treat the reserialization commits as mechanical Unity output.
No known issues.
Related issues/PRs