Assembly Definition Files for Unity Plugin?

mender
Explorer

Assembly Definition Files for Unity Plugin?

Are there any plans to add assembly definition files to the Unity plugin? (https://docs.unity3d.com/2018.2/Documentation/Manual/ScriptCompilationAssemblyDefinitionFiles.html) Plugins which don't have them are a bit of a pain to use for anyone who does use asmdef files, since we need to go into the plugin and at least add one into each Editor folder (and potentially one at the plugin's root as well).

Vive Staff

Re: Assembly Definition Files for Unity Plugin?

Hi @mender,

 

Thanks for inquiry and suggestion.

I'll bring in internal discussion.

And will update here once new feedbacks.

Vive Staff

Re: Assembly Definition Files for Unity Plugin?

Hi @mender,

 

We've reviewed this architecture before, however it takes lots of efforts for implementation.

Currently it's under wish list, and there is no firmed schedule yet.

It's welcome if you'd share the benefits to enable this support from developer perspective.

Thanks.

Highlighted
mender
Explorer

Re: Assembly Definition Files for Unity Plugin?

> it takes lots of efforts for implementation

 

Maybe I'm missing something, but when I patched this in myself, all I needed to do was add two files and click a few buttons to configure them. Where is the effort coming from?

 

> It's welcome if you'd share the benefits to enable this support from developer perspective.

 

For a start, Unity themselves recommend usage of Assembly Definition Files as a best practice. And anyone who uses these files can't access code that isn't underneath an asmdef. So we'd either have to create some kind of catch-all asmdef and reference that, or we'd have to go into the plugin and add the asmdef files ourselves which isn't great when we want to update the plugin.

 

The main benefit of using asmdefs is that they separate the project into different assemblies, so Unity only needs to recompile the Wave SDK code if that code changes. And when I do update the SDK, it only recompiles the SDK and the things that depend on it, and nothing else.  As of the latest Unity version, it's also easy to remove asmdefs from a build completely based on preprocessor symbols, so I can easily remove all the Wave SDK code when building for platforms where I'm using a different SDK.

 

And lastly, adding an asmdef file shouldn't have any negative impact on people who aren't using these in their own projects. When you're not using asmdef files, then all your code goes into the default assembly, which automatically references all explicit asmdefs.

Vive Staff

Re: Assembly Definition Files for Unity Plugin?

Hi @mender,

 

Thanks for your detail sharing and please kindly see our feedbacks about this discussion.

 

After internal discussion with engineering team, we have two major reasons NOT to enable this option at this stage.

1) There are cross reference errors need to be resolved when enable this option, and it requires to review/remove or delete files and make sure there is no side effect or issues after doing this.

2) To ensure backward compatible and compatibility with previous existing projects for various published contents.

 

Please let us know if you have any better idea.

Thanks.