buttplugio / buttplug-unity

Unity plugin for Buttplug.io
Other
40 stars 6 forks source link

Failed to build with Unity 2022.3.12f / Buttplug Unity 3.0.0 #20

Closed kwt127 closed 7 months ago

kwt127 commented 7 months ago

Hello, I am looking to use Buttplug Unity in my game. I was able to implement it on the editor without any problems, but I am having trouble building it.

The environment and the phenomenon that causes the problem are as follows. I would appreciate it if you could tell me what steps I need to take or how to deal with the problem.

◆ Environment

Unity 2022.3.12f Buttplug Unity 3.0.0

I installed using the "Option #3: Edit Package Manager" method in the "Installation" section of the document. After installation, the following warnings were always generated, and ignoring them resulted in the following build errors.

◆ Warning

Assembly for Assembly Definition File 'Packages/com.nonpolynomial.buttplug-unity/Editor/Editor.asmdef' will not be compiled, because it has no scripts associated with it. UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:CompileScripts (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int,string[]) Assembly for Assembly Definition File 'Packages/com.nonpolynomial.buttplug-unity/Runtime/ButtplugUnity.asmdef' will not be compiled, because it has no scripts associated with it. UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:CompileScripts (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int,string[]) Assembly for Assembly Definition File 'Packages/com.nonpolynomial.buttplug-unity/Editor/Editor.asmdef' will not be compiled, because it has no scripts associated with it. UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int,string[],bool) Assembly for Assembly Definition File 'Packages/com.nonpolynomial.buttplug-unity/Runtime/ButtplugUnity.asmdef' will not be compiled, because it has no scripts associated with it. UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int,string[],bool)

◆ Build error

Building Library\Bee\artifacts\WinPlayerBuildProgram\ManagedStripped failed with output: D:\Local\Software\GameEngine\2022.3.12f1\Editor\Data\il2cpp\build\deploy\UnityLinker.exe @Library\Bee\artifacts\rsp\8494283653085629691.rsp Fatal error in Unity CIL Linker Mono.Linker.LinkerFatalErrorException: ILLink: error IL1005: Buttplug.Client.Connectors.WebsocketConnector.ButtplugWebsocketConnector.ButtplugWebsocketConnector(Uri): Error processing method 'Buttplug.Client.Connectors.WebsocketConnector.ButtplugWebsocketConnector.ButtplugWebsocketConnector(Uri)' in assembly 'Buttplug.Client.Connectors.WebsocketConnector.dll' ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Threading.Tasks.Dataflow, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' at Unity.IL2CPP.Common.MissingMethodStubber.GetTypeModule(TypeReference type, IEnumerable`1 assemblies) at Unity.Linker.Steps.AddUnresolvedStubsStep.MarkAssemblyOfType(UnityLinkContext context, TypeReference type) at Unity.Linker.Steps.Marking.UnresolvedStubMarking.HandleUnresolvedType(TypeReference reference) at Unity.Linker.Steps.UnityMarkStep.HandleUnresolvedType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction, MethodDefinition method, Boolean& requiresReflectionMethodBodyScanner) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Unity.Linker.Steps.UnityMarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method, DependencyInfo& reason) at Unity.Linker.Steps.UnityMarkStep.ProcessMethod(MethodDefinition method, DependencyInfo& reason) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context) at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at Unity.Linker.UnityDriver.UnityRun(UnityLinkContext context, UnityPipeline p, LinkRequest linkerOptions, TinyProfiler2 tinyProfiler, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(TinyProfiler2 tinyProfiler, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling() at Unity.Linker.UnityDriver.RunDriver()

UnityEditor.BuildPipeline:BuildPlayer (string[],string,UnityEditor.BuildTarget,UnityEditor.BuildOptions) Builder:BuildPlatform (Builder/BuildType,int,UnityEditor.BuildTarget,UnityEditor.BuildOptions) (at Assets/Editor/Temporary/Builder.cs:52) Builder:StartReleaseBuild () (at Assets/Editor/Temporary/Builder.cs:34)

kwt127 commented 7 months ago

I tried it in a smaller environment and will add the information.

◆ Environment

Unity 2022.3.12f Buttplug Unity 3.0.0 The project used the Buttplug Unity 3.0.0 sample.

◆ Successful build

If we build as is, we get a build error due to the lack of Newtonsoft-json. I installed com.unity.nuget.newtonsoft-json from the package manager and was able to build it again.

◆ IL2CPP build failed

When I tried to build IL2CPP as is, I got the following build error.

Building Library\Bee\artifacts\WinPlayerBuildProgram\ManagedStripped failed with output: D:\Local\Software\GameEngine\2022.3.12f1\Editor\Data\il2cpp\build\deploy\UnityLinker.exe @Library\Bee\artifacts\rsp\7814903616179356747.rsp Fatal error in Unity CIL Linker Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Threading.Tasks.Dataflow, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' at Unity.IL2CPP.Common.MissingMethodStubber.GetTypeModule(TypeReference type, IEnumerable1 assemblies) at Unity.Linker.Steps.AddUnresolvedStubsStep.MarkAssemblyOfType(UnityLinkContext context, TypeReference type) at Unity.Linker.Steps.Marking.UnresolvedStubMarking.HandleUnresolvedType(TypeReference reference) at Unity.Linker.Steps.UnityMarkStep.HandleUnresolvedType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, IMemberDefinition sourceLocationMember) at Mono.Linker.Steps.MarkStep.MarkField(FieldDefinition field, DependencyInfo& reason) at Mono.Linker.Steps.MarkStep.MarkEntireTypeInternal(TypeDefinition type, Boolean includeBaseTypes, DependencyInfo& reason, IMemberDefinition sourceLocationMember, HashSet1 typesAlreadyVisited) at Mono.Linker.Steps.MarkStep.MarkEntireAssembly(AssemblyDefinition assembly) at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly) at Unity.Linker.Steps.UnityMarkStep.InitializeAssembly(AssemblyDefinition assembly) at Mono.Linker.Steps.MarkStep.Initialize() at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context) at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at Unity.Linker.UnityDriver.UnityRun(UnityLinkContext context, UnityPipeline p, LinkRequest linkerOptions, TinyProfiler2 tinyProfiler, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(TinyProfiler2 tinyProfiler, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling() at Unity.Linker.UnityDriver.RunDriver()

I have tried installing Extensions for System.Threading.Tasks (NuGet) relying on the error message, but have not been able to resolve this build error. It appears to be the same situation as the thread here https://forum.unity.com/threads/unity-2021-3-1f1-il2cpp-failing-to-link-library.1290431/ so it may not be a Buttplug Unity issue. It may not be a Buttplug Unity issue.

I am not very familiar with this sort of thing and I apologize if I am writing about the wrong considerations. If there are any elementary mistakes or misunderstandings, I would appreciate it if you could point them out to me.

Thanks.

kwt127 commented 7 months ago

Excuse me for repeating myself. For some reason I was able to solve the problem by installing System.Threading.Tasks.Dataflow via NuGet For Unity. Sorry for the trouble.

qdot commented 7 months ago

The DLL most likely wasn't copied into the project. I'm not sure if that's a problem with my package or not, I'll check it out.