Skip to main contentSkip to contact
Ocean View Games
Ocean View
Games
Blog header banner

When to Migrate Your Unity Project (And When to Stay Put)

David Edgecombe

David Edgecombe

·7 min read

"Should we upgrade to Unity 6?" is one of the most common technical questions we hear from studios and clients. The answer is almost never a simple yes or no, because a Unity version migration is not a free upgrade. It is a project in its own right, with real costs, real risks, and a timeline that depends entirely on the state of your codebase.

At Ocean View Games, we have migrated projects across multiple Unity versions over the past decade. We have seen migrations that took a single afternoon and migrations that consumed weeks of engineering time. The difference almost always comes down to preparation and honest assessment of what the migration actually involves.

This post is the framework we use internally when advising clients on whether to migrate, when to migrate, and how to do it without derailing their production schedule.


Why Unity Migrations Are Not Free

Every major Unity version introduces changes to the rendering pipeline, scripting API, package manager dependencies, and platform toolchains. Some of these changes are additive (new features you can adopt gradually). Others are breaking (APIs removed, behaviours changed, deprecated systems finally deleted).

The cost of a migration is determined by how many breaking changes affect your specific project. A project using Unity's built-in render pipeline, standard physics, and no third-party plugins might migrate in hours. A project using custom render passes, native plugins, platform-specific code paths, and a dozen Asset Store dependencies could face weeks of compatibility work.

The Hidden Costs

The obvious cost is fixing compilation errors. The hidden costs are what catch teams off guard:

Behaviour changes are the most dangerous category. Your project compiles and runs, but something behaves differently. Physics interactions feel slightly off. Particle effects render at the wrong scale. UI layout shifts on certain aspect ratios. These issues do not throw errors; they slip through unless you have thorough test coverage or meticulous QA.

Plugin compatibility is the most common blocker. If any of your third-party plugins or Asset Store packages have not been updated for the target Unity version, you are stuck waiting for the maintainer or finding an alternative. For projects using networking libraries like FishNet or Mirror, this is especially critical as networking code is deeply integrated and version-sensitive.

Build pipeline changes affect your CI/CD workflow. Unity has shifted build systems, changed Gradle integration for Android, and updated Xcode project generation for iOS across recent versions. Your automated build pipeline may need reconfiguration.

Team disruption is the cost nobody budgets for. While migration work is in progress, the main development branch is in flux. Feature work either pauses or runs on a parallel branch that will need merging later. For a small team, this disruption is proportionally larger.


When Migration Makes Sense

Despite the costs, there are clear situations where migrating is the right call.

You Need a Feature That Only Exists in the New Version

Unity 6 introduced significant improvements to the rendering pipeline, GPU Resident Drawer for reduced draw call overhead, and enhanced multiplayer tooling. If your project specifically needs one of these features and there is no reasonable workaround on your current version, migration is justified.

For our work on Domi Online, the GPU instancing improvements in newer Unity versions directly impacted our ability to render 10,000+ trees with minimal draw calls. The performance gain was worth the migration effort because it solved a concrete, measured problem.

Your Current Version Is Approaching End of Life

Unity provides Long Term Support (LTS) for each major release, but that support window is finite. Once your version leaves LTS, you stop receiving security patches, platform SDK updates, and bug fixes. More critically, Apple and Google regularly update their SDK requirements for app store submissions. If your Unity version cannot target the latest required iOS or Android SDK, you will eventually be unable to submit updates to the stores.

This is not a hypothetical risk. We have seen studios unable to push critical bug fixes because their Unity version could not produce a build that met updated store requirements.

Your Plugin Ecosystem Has Moved On

If the plugins and packages your project depends on have dropped support for your Unity version, you are accumulating risk with every update you skip. Eventually, a critical plugin update (a security patch, a platform compatibility fix) will only be available for newer Unity versions, forcing an unplanned migration under time pressure.

You Are Starting a New Phase of Development

If your project is between major development phases, such as finishing a vertical slice and moving into full production, or completing initial release and planning a major content update, the natural gap in feature development is the best time to absorb migration costs. The team is not mid-sprint on critical features, and there is time to test thoroughly before resuming production velocity.


When to Stay Put

Migration is not always the right call, and premature migration is surprisingly common.

You Are Mid-Production With a Hard Deadline

If you are six weeks from a milestone delivery or store submission, do not migrate. The risk of introducing subtle bugs or incompatibilities outweighs any benefit from new features. Finish the milestone on your current version, then evaluate migration during the next planning phase.

The New Version Does Not Solve a Real Problem

"Unity 6 is out, we should probably upgrade" is not a sufficient reason to migrate. If your current version is stable, your plugins are compatible, your build pipeline works, and you are not hitting performance limitations that the new version specifically addresses, the migration cost buys you nothing tangible.

Your Test Coverage Is Thin

If you do not have automated tests covering core systems (progression, economy, save/load, networking) and you do not have a structured QA process, a migration will introduce behaviour changes you cannot detect reliably. Invest in test coverage first, then migrate.

You Have Heavily Customised Engine Internals

Projects that have forked Unity packages, written custom render passes against internal APIs, or patched engine source code face disproportionate migration costs. Each customisation is a potential point of failure that must be individually verified and potentially rewritten.


The Migration Decision Framework

We use a simple scoring approach when advising clients. For each of these five factors, score your project 0 (no risk), 1 (moderate), or 2 (significant):

1. Third-party dependencies. How many Asset Store packages and native plugins does your project use? More dependencies means more compatibility risk.

2. Custom rendering. Have you written custom shaders, render passes, or post-processing effects? These are the most likely to break across Unity versions.

3. Platform targets. How many platforms do you ship to? Each platform adds a testing and verification pass to the migration. A project shipping to iOS, Android, WebGL, and Steam has four times the platform verification work of an iOS-only project.

4. Codebase size and age. Larger, older codebases accumulate more deprecated API usage. A project that has been in development for three years across two Unity versions will have more migration surface area than a six-month project.

5. Test coverage. Do you have automated tests for core systems? A project with solid test coverage can migrate with much higher confidence than one relying entirely on manual QA.

A total score of 0 to 3 suggests a straightforward migration (days). 4 to 6 suggests moderate effort (one to two weeks). 7 to 10 suggests a significant migration project that should be planned and budgeted as a distinct workstream.

We built a free Unity Migration Checker that walks you through this assessment interactively and gives you a personalised recommendation based on your specific project parameters.


How to Execute a Migration Safely

If you have decided to migrate, here is the process we follow:

1. Branch and Baseline

Create a dedicated migration branch. Before changing anything, run your full test suite and record the results. Take screenshots or video of key gameplay sequences. This baseline is your reference for verifying that the migration has not introduced regressions.

2. Upgrade in Steps

If you are jumping multiple Unity versions (e.g. 2021 LTS to Unity 6), do not leap directly. Upgrade one LTS version at a time, fixing issues at each step. This makes it far easier to identify which version introduced a specific problem.

3. Fix Compilation First, Behaviour Second

Get the project compiling before you start testing behaviour. The Unity upgrade wizard will flag most API changes. Fix those systematically, using Unity's migration documentation for each version step.

4. Test on Real Devices

Editor testing is not sufficient. Build to your target platforms and test on actual hardware, especially minimum-spec devices. Rendering differences, input handling changes, and performance characteristics all vary between Editor and device.

5. Verify Third-Party Plugins Independently

Before attributing a bug to the Unity upgrade, verify that each third-party plugin has been updated for the target version. Plugin-related issues are the most common source of post-migration bugs.


When We Can Help

If you are evaluating a Unity migration and want an expert assessment of the effort involved, our legacy modernisation service includes codebase audits specifically designed to surface migration risks before you commit. We have migrated projects ranging from small educational games to a large-scale MMORPG, and we can give you an honest estimate of what your specific migration will cost.

Start with our free Unity Migration Checker for an initial assessment, or get in touch for a detailed review.

Share

Stop Searching. Start Building.

Ready to start your next project? Tell us about your game and we'll get back to you with a plan.

Start by telling us what kind of help you need.

Location

London, United Kingdom

Response Time

We typically respond within 24-48 hours

1
2
3
Step 1 of 3