Only recompile scripts instead of full build?

Is there a way to only recompile scripts instead of rebuilding the whole project?
E.g. if I have setup my whole game and I only want to insert a Debug.Log or similar it is really annoying to have to rebuild the whole project.

Would it be possible to use MonoDevelop to do the compilation and then replace an assembly in an .apk for example?

I still haven’t found a solution for this. I am looking for a way to either change/update the C-Sharp Assembly or the resources.asset in an XCode project to avoid doing full rebuilds if no assets were changed between two builds. I tried doing a build without the resources folder and then insert the resources.asset from a previous build manually, but if I do so Unity can’t find the assets from resources, so I guess there’s something else happening at build time. :frowning:

On Windows, we’ve been copying Assembly-CSharp.dll and Assembly-CSharp.dll.mdb successfully for several weeks. For us it’s more than ten times faster than rebuilding the whole project.

While I haven’t tested the approach on OSX, I’d love to know if it works in that environment!

You do need to specially handle the UNITY_EDITOR #define to make the .dll compatible between the editor and the built player.

More details:

There’s not much you can do about that. xcode have to crosscompile anyways. If it’s just for debugging, you could implement a plugin interface and try to load an external assembly. This assembly can be changed

Just for reference: Since Unity 2017.1, there is now an option in the build settings to do exactly that.

AssetDatabase.ImportAsset(AssetDatabase.GUIDToAssetPath(AssetDatabase.FindAssets(“t:Script”)[0]));