I have seen this issue since version 2.0 of Unity; and every time someone say “we will change that at one point”. Well; not sure when “Soon” is but so far we are still bound to download everything on the C drive.
I downloaded again the latest unity hub; installed a new build of Unity and the editor is installed correctly on my secondary drive, not on C.
Although when I download packages from the asset store; they are still saved in appdata\Roaming\Unity\Asset Store-5/x on Windows 10. I assumed that the assets will now be copied in the same location I specified in Unity hub for the editor, but nope.
And yes; it is a small thing; because you say “just make a symlink”. I made a symlink; and when I download packages via Unity; it create again the Asset Store-5.x folder, ignoring the symlink. On top of that there is another folder called “Asset Store” with some other items, which does not seem to work with symlink either.
I understand that for legacy reasons, the Unity folder must be in the Roaming folder; because this is the main reason why we still can’t decide where the packages go, right? Otherwise I am not sure why we are still here talking about something that in principle is really straightforward to implement.
I don’t want to have Gb and GB of assets on my C drive, and yet I am forced to. Not sure what will take for Unity to finally change this, but I hope it will eventually happen.
You’re right, this is quite annoying, and not only about the assets but also about the caches.
Here are the procedures I apply when installing Unity on a new computer, they worked fine 6 months ago (change the destination drive/folders as you see fit):
Package Cache
Move the complete 'C:\ProgramData\Package Cache' directory to another place (the source directory 'Package Cache' must be deleted)
Create the junction: mklink /J “C:\ProgramData\Package Cache” “D:\ProgramData\Package Cache”
Unity GI cache
Open Unity preferences
Open the ‘GI cache tab’
Clean the GI cache
Set a new place for the GI cache
Unity AssetStore download
Move the 'C:\users\username\appdata\roaming\unity\asset store-5.x' directory to the destination (the source directory 'asset store-5.x' must be deleted)
Create the junction: mklink /J “C:\users\username\appdata\roaming\unity\asset store-5.x” “E:\users\username\appdata\roaming\unity\asset store-5.x”
Move other caches away
Step 1: Open the System properties (right-click on the ‘Computer’ icon, select ‘Properties’, then click on on ‘Advanced system properties’
Step 2: Add the ‘UPM_NPM_CACHE_PATH’ variable with the destination directory (do not create the destination directory)
Step 3: Add the ‘UPM_CACHE_PATH’ variable with the destination directory (do not create the destination directory)
Step 4: Delete the ‘npm’ and ‘packages’ directories from 'C:\Users<USER_NAME>\AppData\Local\Unity\cache'
Step 5: Restart the computer
thanks for the explanation but I am not clear on this.
Which are the destination directories for UPM_NPM_CACHE_PATH and UPM_CACHE_PATH is it D:\ProgramData\Package Cache?
I don’t remember the original paths, but what I can tell is that both UPM_NPM_CACHE_PATH and UPM_CACHE_PATH contains a 'packages.unity.com' directory.
UPM_CACHE_PATH does contain the packages uncompressed, while UPM_NPM_CACHE_PATH contains the compressed version of the packages.