Search Issue Tracker
Fixed in 7.3.0
Votes
18
Found in [Package]
6.9.1
Issue ID
1192259
Regression
Yes
[SRP only] Clearing playerprefs causes assets to reimport on playmode
How to reproduce:
1. Open the attached "ReloadBug.zip" project
2. Load "SampleScene" scene
3. Enter and exit the Play mode multiple times (issue does not happen when entering the Play mode for the first time)
Expected result: minimal delay when entering the Play mode after the first time
Actual result: delay, that increases in parallel with the number of assets, appears when entering the Play mode again after the first time
Reproduced with: LWRP 6.7.1 (Unity 2019.2.0b1), LWRP 6.9.1 (Unity 2019.2.6f1), LWRP 6.9.2 (Unity 2019.2.11f1), URP 7.0.1, URP 7.1.2 ( Unity 2020.1.0a9)
Not reproduced with: LWRP 6.5.2 (Unity 2019.2.0b1)
Could not reproduce with: Unity 2017.4.33f1 (no Package Manager)
Notes:
- PlayerPrefs can be cleared by either using PlayerPrefs.DeleteAll() in a script or by using Edit -> Clear All PlayerPrefs
- sometimes "reimport" window briefly appears, inconsistent behaviour
- Console error ("NullReferenceException" or "MonoScriptImporterInspector.OnEnable must call base.OnEnable"), that is clearable or is cleared after restarting Unity (and does not appear again) can appear when entering the Play mode, however, error behaviour is inconsistent. Unknown reason as to what would make it appear after clearing PlayerPrefs and entering the Play mode
- after removing the script that would clear PlayerPrefs, the delay still happens for one more time when entering the Play mode
- reproduced on both Windows and Mac
-
anisslab
May 27, 2020 05:05
@Jason_Yak could you please say the direrct name of the script where you used that:
var lwrpVersion = PlayerPrefs.GetString( "LWRP-material-upgrader" );
PlayerPrefs.DeleteAll();
PlayerPrefs.SetString( "LWRP-material-upgrader", lwrpVersion );Thanks!
-
jason_yak
Jan 22, 2020 07:47
(this works for LWRP v6.9.1 at least)
-
jason_yak
Jan 22, 2020 07:47
Got a work around finally. Store the lwrp string and reapply it before and after running a DeleteAll command.
var lwrpVersion = PlayerPrefs.GetString( "LWRP-material-upgrader" );
PlayerPrefs.DeleteAll();
PlayerPrefs.SetString( "LWRP-material-upgrader", lwrpVersion ); -
rmiha
Jan 16, 2020 11:33
Is there a fix planned for one of the next versions?
-
yakandco
Jan 16, 2020 02:05
Any progression on this issue? any indication of when it will be fixed. This has been an issue for over 6 months now and stifling our production to the point of testing in the editor being unusable. Having to wait for every asset to be reimported every time we run our app in the editor is such a horrible issue for our team.
-
SempreGaming
Dec 16, 2019 10:26
Remoivng the key "LWRP-material-upgrader_h2399089941" at any point causes the above behavior.
For the time being store all of your prefs in a class and access them via a wrapper. That class can then remove the player prefs at will.
The SRP only tag is incorrect - it happens whether or not SRP is enabled as my project does not use lwrp/hdrp/srp
-
StephanK
Nov 26, 2019 09:59
We were also running into that issue. I checked and it seems unity is now writing their own keys to PlayerPrefs. One of them contains the version of LWRP. If that's not there I assume unity triggers a reimport. I really think unity should not be writing anything into PlayerPrefs, this should be purely for game specific data.
-
jason_yak
Nov 25, 2019 16:01
Yup we’ve had this issue for months and has really put the brakes on our production making it very difficult to test when we have to wait 10-20 minutes every play.
-
Time-Jockey
Oct 30, 2019 00:16
Having a very similar issue, but with URP
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Asset Bundles retain their previous hash and CRC values when an object within a bundle is changed and rebuilt
- APV Reflection Probe Normalization breaks when SSGI is enabled
- Default Custom Components in project have Library counterparts
- [iOS]"The destination host has an erroneous SSL certificate" error is thrown when using UnityWebRequest to connect to the server with a self-signed certificate
- Freeze/crash on DynamicHeapAllocator::Allocate when opening a specific project
Resolution Note (fix version 7.3.0):
Fixed with 2020.1.0a26 (8.0.1), 2019.3.7f1 (7.3.1)
Resolution Note (fix version 7.3.0):
Usage of playerprefs for URP settings has been removed, now a settings file is created in ProjectSettings