Unity makes it easy to start building. That flexibility is one of the reasons developers reach for it — nothing forces a folder structure, nothing rejects a badly named prefab, and a project that grew organically runs exactly as well as one that was planned.
Which is the problem. The engine will never tell you the project has become difficult to work in. Only the next person to join will.
Why Unity Projects Drift Faster Than Most
Three things specific to Unity accelerate the process.
Asset Store packages import wherever they like. Many drop a top-level folder straight into Assets/, bringing their own naming conventions, their own demo scenes and sometimes their own copies of common shaders. Import a dozen and the root of the project is no longer yours.
References are held by GUID, not by path. Every asset carries a .meta file, and Unity tracks relationships through the GUID inside it rather than the filename. This is a genuine strength — rename inside the editor and nothing breaks. It also means the filename carries no structural weight at all, so nothing pushes back when names decay.
Everything looks equally final. A blockout prefab, an approved production asset and an experiment someone left behind all present identically in the Project window.
Preparing for a New Team Member
An indie studio grows from two developers to six. The original pair know that Player_New is old, Player_Final is temporary, and Player_Final_Approved is the one actually in the build.
The new artist does not, and there is nothing in the project that would tell them. That knowledge exists only in two people’s heads, which makes it a liability rather than an asset — it cannot be searched, it does not survive someone leaving, and it silently costs every new hire their first fortnight.
A naming and approval workflow moves that state out of people and into the project, so the project can answer questions about itself.
Naming Conventions Are a Search Problem
Conventions are often framed as tidiness. They are more usefully understood as making the project searchable.
A consistent prefix means a developer can filter to every material, every prefab variant or every UI sprite in one search box. Inconsistent naming means the only reliable way to find something is to already know where it is — which returns you to tribal knowledge.
The test of a convention is not whether it looks neat in the Project window. It is whether somebody who has never opened the project can find the current version of an asset without asking.
Approval State Is Not the Same as Naming
A well-named asset is not necessarily a finished one. Production teams need to distinguish work in progress from ready for review, changes requested, approved and deprecated — and a filename is a poor place to store a value that changes several times a week.
Encoding it in the name is why _Final_Approved_v2 exists. The information is real; the filename is just the wrong container for it.
Working Across Two Engines
Studios and agencies that move between Unreal and Unity face the same discipline twice with different specifics. Applying a consistent project-hygiene approach across both is worth more than optimising either in isolation, particularly for outsourcing teams who inherit client projects and have to become productive in them quickly.
Disclosure: Unity Studio Hub is built by BizziGroup, BizziKit’s parent company. This article describes a product we have a commercial interest in.
BizziGroup’s Unity Studio Hub is an asset-management and validation tool for Unity teams — scanning the Assets folder, validating naming, supporting an approval pipeline and exporting reports.
Frequently Asked Questions
Why does Unity use .meta files?
Each asset has a companion .meta file containing a GUID and import settings. Unity resolves references by GUID rather than by path, which is why renaming an asset inside the editor does not break the things that use it.
What is a good Unity naming convention?
One that makes assets findable by search and that everyone actually follows. The specific prefixes matter less than consistency and the fact that new team members can discover the rule without being told.
Should approval state go in the filename?
It is better held as tracked metadata. Approval changes frequently, and encoding it in filenames produces names like Final_Approved_v2 while breaking any convention the team had.
Does this replace version control?
No. Source control tracks changes and history. Asset management tracks what the assets are, whether they follow project standards and where they sit in a review process.