When setting a resolution in the player settings prior to doing a build, these settings are ignored if those settings are stored in the registry.
I have been doing a fair bit of research on this issue and found that Unity’s official response is that this is not an issue. The recommended work around for this is that you set the Screen.Width and Height in an initialization function, however this is insufficient because the Unity splash screen will be displayed with the resolution and settings stored in the registry. This causes the jarring effect of resolution changes for seemingly no reason to the user.
Furthermore, imagine the following case: You have an application you have designed specifically to run at a given resolution. In a later version, you make changes to the resolution and the application is now designed to run at a different resolution to the original. You push this new version out to clients and it runs at different resolutions based on if they had the old version installed, causing undesired behavior.
Resolution of the screen should be under full control of the programmer and stored registry keys should not take precedence unless the programmer chooses for it to do so.
Hopefully you can see from what I’ve written above that this IS an issue.