0 votes
asked in Bug Report by

UMotion is installed on the default installation directory "Editor Default Resources", but it seems like it doesn't like having Assembly Definitions. Is there a way to make it work without having to re-structure my whole project? And the fact that I cant put it in Plugins is a huge let down. I wish I had known this before buying it.

1 Answer

0 votes
answered by Expert (62k points)
selected by
 
Best answer

Hi Jose,
thanks for reaching out.

UMotion is already compiled into it's own assemblies. There are only a hand full of script files that mostly contain only a few lines of code to wrap Unity API for making UMotion compatible across all the different Unity versions. These script files need to be in the Assembly-CSharp and Assembly-CSharp-Editor assemblies and won't noticeable increase your compile time. As the reference to these assemblies already needs to be known when compiling the UMotion *.dlls it is not possible to support assembly definitions here.


Regarding the plugins folder: UMotion already has all it's *.dlls in a plugins folder. When putting the whole UMotion installation into a plugins folder the *.cs files are compiled into Assembly-CSharp-FirstPass etc. again breaking the reference of the UMotion dll's.

Long story short, UMotion already provides all the advantages of assembly definition files out of the box. Please just move it into a desired folder that is not a child of a plugins folder and is not using an assembly definition. Thanks.

Please let me know if you have any further questions.

Best regards,
Peter

commented by

Sorry but that is not a solution, to be able to use this I would have to re-structure my whole project. Plenty of other plugins that use DLL's don't have any issues with Assembly Definitions. Seems like you have hardcoded dependencies which is not good.

commented by Expert (62k points)

Please provide some further information about why you would need to re-structure your whole project? Just make sure that UMotion is in a folder that (and any of it's parent folders) does not contain an assembly definition.

As already mentioned there is indeed a hard coded reference to Assembly-CSharp and Assembly-CSharp-Editor. This references are necessary to ensure API compatibility across Unity 5.4 till 2018.2. Otherwise it would be necessary to provide a separate UMotion version for every Unity version.

Best regards,
Peter

commented by
The Assets folder needs an assembly definition, theres no other folder I can place this on. Removing the assets folder assembly definition will break my project. And again, plenty of other plugins with DLL's work just fine.
commented by Expert (62k points)

Why do you need an assembly definition in the Assets folder? Couldn't you just move the scripts you have in the assets folder into a sub folder and keep the Assets folder clean of assembly definitions?

And again, plenty of other plugins with DLL's work just fine.

Then these assets don't reference against the Assembly-CSharp or Assembly-CSharp-Editor assembly or use native *.dlls (that don't refer to the Unity API at all).
Because in older Unity versions scripts are always compiled into the default assemblies (Assembly-CSharp etc.) I need to reference against those default assemblies. Otherwise UMotion would not be able to support versions below Unity 2017.3.

I hope this makes sense to you.

Best regards,
Peter

commented by
Precisely my point. I shouldn't have to move anything to get this to work, it should just work.Seems like this is not flexible enough for serious projects on production.
commented by Expert (62k points)
As soon as most of the Unity/UMotion users stop using versions below Unity 2017.3 (which will take some time) I can deliver UMotion with an assembly definition by default and reference against these in the *.dlls.
But as of know, the scripts need to be compiled into the default assemblies. I think this can be achieved with reasonable effort in every project.

Best regards,
Peter

Soxware Support

Here you get official product support by the developer and the community for all Soxware Products for Unity®.

Post as guest, login via Facebook or create an account.

Ask questions, report bugs or provide feedback. Please use the correct category and always post in english.

For private email support, please use the Support Form to create a support ticket.

Copyright © 2017 Soxware Interactive | All Rights Reserved | Impressum

...