- Home /
How can I use Magick in Unity?
I have downloaded the suggested version of http://magick.codeplex.com/releases/view/614781. I dropped it in my Assets folder. I included it in my C# scripts, and all of the code compiled without any issues. (It found Magick, and accessed the library fine.)
However, when I switch back to Unity, I get a couple of errors. One error is very non-descriptive, but with a bunch of information and different suggestions on the Unity forums. After trying all of the suggestions, such as setting the API compatibility level to .NET 2.0 and reimporting all assets, I still have the errors. The first one is there all of the time, and the second one is there only after I reload my project.
The other error is fairly clear, but I just don't know of any repercussions of fixing it incorrectly. I figured I would come back to it, and only included it here in the off chance it was related to the first error.
Is there any way I can get my Unity code to compile with the inclusion of Magick?
First Error
Unhandled Exception: System.TypeLoadException: Could not load type 'ImageMagick.MagickImage' from assembly 'Magick.NET-x64, Version=7.0.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec'.
at Mono.CSharp.MemberCache..ctor (IMemberContainer container) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
at Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.MemberLookup (Mono.CSharp.CompilerContext ctx, System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.MemberLookupFinal (Mono.CSharp.ResolveContext ec, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0
at Mono.CSharp.New.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Using.ResolveVariable (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Using.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in <filename unknown>:0
Second Error
Multiple plugins with the same name 'magick.net.wrapper-x64' (found at 'Assets/Magick/net20/Magick.NET.Wrapper-x64.dll' and 'Assets/Magick/net40-client/Magick.NET.Wrapper-x64.dll'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.
I'm facing the same problem, did you find a solution to have $$anonymous$$agick.Net working in Unity ?
Answer by fokziu · Nov 25, 2015 at 08:55 PM
You need to copy only Magick/net20 directory and remove the net40-client directory from Assets