- Home /
C#scripts visibility at runtime and in editor in Monodevelop
Wich are the rules that makes a script accessible to other scripts, and the rules that make a script accessible only with a "using" directive?.
What If I need scripts organized in different folders? I had the problem for example that in one project a script was not accessible from another script because was in a higher level folder.
What when a script must be accessible by the editor and at runtime? I need to know all the rules of visibility so I can make slightly better designed code and put everything more organized in proper folders.
Thanks
Answer by whydoidoit · Apr 20, 2013 at 12:43 PM
The only time you need to use using is if the types being used are in a different namespace - because you or someone else has put them in a namespace XXX { } structure.
Unity compiles 4 different types of folder into 8 different assemblies (4 for C# and 4 for Javascript). See this: http://docs.unity3d.com/Documentation/ScriptReference/index.Script_compilation_28Advanced29.html
Given that you cannot have two types with the same name in the same namespace your folder order is irrelevant to the compiler except where things appear in one of the special folders like Editor or Standard Assets. You can of course duplicate if the file's types are in different namespaces.
Personally I keep all of my first pass files in one folder, all editor files in another folder and all normal scripts in a third - I find folder structures hard to navigate because it's so easy to "want" a file in more than one place - so I'd just like to be able to find them (and the navigate to symbol functions are very powerful in Visual Studio and MonoDevelop so I rarely even think about file names).
The only time I group files is when I make plugins or reusable code - which I put as a sub folder of my core folders.
indeed :) I wanted to write a plugin for a tutorial so I wanted to be sure how about symbol names were threated by unity, so I have to put a Plugin/PluginName and Editor/Plugin name folder in the project. Tanks :)
Your answer
![](https://koobas.hobune.stream/wayback/20220613100705im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Script Editors for Unity 3 Answers
Script work in editor but not in build 0 Answers
Editor script - any callback when target is first instantiated? 1 Answer
Multiple Cars not working 1 Answer