Muszę wykonać skrypt Unity, aby zaimportować i wyeksportować niektóre modele 3D. Próbuję odwołać się do Servicestack.Redis z mojego skryptu, aby móc rozmawiać z redis. Kompiluje się dobrze, ale jedność nie załaduje biblioteki.Jak odwołać się do biblioteki ServiceStack w skrypcie Unity C#?
Mam skopiowane dll z Build/Release/MonoDevelop/SericeStack.Redis.zip w folderze moim aktywów w jedności (czy to prawda?) Właśnie ServiceStack przez klonowanie https://github.com/ServiceStack/ServiceStack.Redis
Kiedy próbuje Unity wczytaj skrypt, który mówi:
Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
at System.Reflection.Assembly.GetTypes() [0x00000] in <filename unknown>:0
at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0
at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0
at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.LoadReferences() [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Compile() [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
Mój kod jest do tej pory. To skrypt edytora. To właśnie sprawia, że okno z przyciskiem i po kliknięciu przycisku próbuje połączyć się Redis na localhost i uzyskać klucz
using UnityEngine;
using UnityEditor;
using System.Collections;
using ServiceStack.Redis;
public class MyWindow : EditorWindow
{
// Add menu item named "My Window" to the Window menu
[MenuItem("Window/My Window")]
public static void ShowWindow()
{
//Show existing window instance. If one doesn't exist, make one.
EditorWindow.GetWindow(typeof(MyWindow));
}
void OnGUI()
{
if (GUILayout.Button("Press to Rotate"))
{
ProcessAsset();
}
}
void ProcessAsset()
{
using (var client = new RedisClient("localhost"))
{
client.Get ("hello");
}
}
}
Jestem prawdopodobnie poprawnie tylko nie odwołuje się do biblioteki. Jestem całkiem nowym językiem do kompilacji.
Niestety, liczba niezgodności mono i jedności Znalazłem spowodował mnie do porzucenia jedności i ponownie napisać proces eksportu w Pythonie. – Nathan