Unity中的Encog dll?

我想实现Encog到Unity。 当我将dll放入资产时,不会发生错误。 我甚至可以创建没有错误的新神经网络。

当我将XOR示例粘贴到脚本时,我得到如下所示的错误。 我用谷歌搜索它与Encog使用Unity单体行为中未涵盖的部分C#有关。

有人说我应该使用net framework 3.5构建的dll,但是当我尝试在visual basic中加载解决方案文件时,我得到了另一个类似于此的错误:

Error 1 The type or namespace name 'Tasks' does not exist in the namespace 'System.Threading' (are you missing an assembly reference?) C:\Programs\Unity\ncog\encog-dotnet-core-3.2.0\encog-core-cs\Util\Concurrency\Job\ConcurrentJob.cs 24 24 encog-core-cs 

我尝试修改encog源中包含的build.bat,以便它使用3.5框架的路径:C:\ Windows \ Microsoft.NET \ Framework64 \ v3.5 \ msbuild(这个编译没有错误/警告)但是当我尝试使用这个dll在统一中,我得到的同样的错误与dll normaly分布在encog网站上。

尝试使用XOR安全示例脚本时出现统一错误

 Internal compiler error. See the console log for more information. output was: Unhandled Exception: System.TypeLoadException: Could not load type 'Encog.ML.Train.BasicTraining' from assembly 'encog-core-cs, Version=3.2.0.0, Culture=neutral, PublicKeyToken=3e882172b12155d4'. at (wrapper managed-to-native) System.MonoType:GetMethodsByName (string,System.Reflection.BindingFlags,bool,System.Type) at System.MonoType.GetMethods (BindingFlags bindingAttr) [0x00000] in :0 at Mono.CSharp.MemberCache.AddMethods (BindingFlags bf, System.Type type) [0x00000] in :0 at Mono.CSharp.MemberCache.AddMethods (System.Type type) [0x00000] in :0 at Mono.CSharp.MemberCache..ctor (IMemberContainer container) [0x00000] in :0 at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeManager.LookupMemberCache (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeManager.LookupMemberCache (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in :0 at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in :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 :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 :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 :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 :0 at Mono.CSharp.New.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in :0 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in :0 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in :0 at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in :0 at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in :0 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in :0 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in :0 at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in :0 at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in :0 at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in :0 at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in :0 at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in :0 at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in :0 

这似乎是DLL支持的常见问题。 我已经看到了人们试图将Encog连接到Ninjatrader的类似问题。 当前版本的Ninjatrader支持.Net的过时版本(后面的几个版本),没有LINQ支持。 我认为Unity3D有类似的问题。 我不是Ninjatrader或Unity3D的活跃开发者。 我真的不想同时支持Ninjatrader和Unity3D版本(当天只有这么多小时)。 然而,.Net的后续版本支持LINQ中一些非常有用的function,以及非常先进的腭化function。

我想一个答案是创建一个非常基本的非LINQ /非并行,它与过去10年内的任何.Net版本兼容。