Missing Reference Assembly when putting assets in `Plugins` folder

Wanting to speed up compilation time of my project, I learned about the Plugins folder trick. That is, putting all things that do not need to be recompiled into the Plugins folder so they only get compiled once.

The issue is, when I do put things in the Plugins folder (such as third party assets), and then I try to use the assets’ scripts in my own scripts, I get are you missing a reference assembly errors.

I do not use assembly definitions. My scripts are in the project Assets folder and compiled in the default Assembly-CSharp.dll. The assets’ scripts are in the Plugins folder and do not use assembly definitions either so are compiled in Assembly-CSharp-firstpass.dll. Reading the documentation, the first-pass dll should be referenced in Assembly-CSharp.dll.

Why can’t my scripts see the scripts that are in the Plugins folder?

Any help would be appreciated.

This isn’t a thing.

Here is the documentation so you can reason about what you want to do:

https://docs.unity3d.com/Manual/SpecialFolders.html

It turns out the code compiles and runs without error.

It’s visual studio that shows this error and the auto completion isn’t working.

6530093--737519--upload_2020-11-16_17-56-58.png

The plugins folder is definitively a thing, the documentation is incomplete.

Okay, problem solved. After regenerating the project files, visual studio finds the reference.

Well, the relevant documentation page is this one ^^. Though I agree that they missed to include the plugins folder on the special folders page.

Even the plugins folder is mainly meant for native plugins, it always has been the case that scripts inside the plugins folder are part of the first compilation stage. So “Standard Assets” and “plugins” have the same effect on scripts. If you should use it for this purpose is more a philosophical question. Some people move their own “standard assets” into the “Standard Assets” folder. Others only use the “Standard Assets” folders for scripts proviced by Unity. I don’t see any issues moving your own standard scripts into the “Standard Assets” folder as you can group all your stuff in a subfolder to seperate it from other standard assets.

Though I generally don’t like folder names that contain spaces (Yes, an old DOS habit, but up to this date there are cases where this can still cause issues). So the “plugins” folder seems to be more “attractive”. This could also be the reason why many people suggest using this folder.