【发布时间】:2017-08-03 14:50:14
【问题描述】:
我正在尝试为 Unity 开发本机插件(使用 Unity 2017.1.0f3 和 VS 2015)。我的原生插件的目标平台是 UWP,插件是用 C# 编写的。
以下是我在 Unity 中的插件和脚本的代码。
面向 Windows 10 14393 的类库中的插件代码
public static class SettingsService
{
public static string GetSetting( string key )
{
var localSettings = ApplicationData.Current.LocalSettings;
try
{
var stringvalue = localSettings.Values[key] as string;
return stringvalue;
}
catch ( ArgumentNullException en )
{
return default( string );
}
}
public static void SaveSetting( string key, string value )
{
var localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values[key] = value;
}
}
Unity脚本代码
public class TestNativePlugin : MonoBehaviour {
[DllImport( "UnityPluginTestUWP", EntryPoint = "GetSetting" )]
private static extern string GetSetting( string key );
[DllImport( "UnityPluginTestUWP", EntryPoint = "SaveSetting" )]
private static extern void SaveSetting( string key, string value );
// Use this for initialization
void Start () {
SaveSetting( "setting", "oeoeoe" );
System.Diagnostics.Debug.WriteLine( GetSetting( "setting" ) );
}
}
问题是在运行时我得到一个带有消息的EntryPointNotFoundException:
在 DLL UnityPluginTestUWP.dll 中找不到名为“SaveSetting”的入口点
我在网上看到这可能是由于编译器对函数名称的修改造成的。但这只是在 C++ 代码中。我的插件是用 C# 编写的。
欢迎任何帮助解决这个问题。
【问题讨论】:
-
为什么要导入 DLL 如果是用 C++ 编写的?直接将您的 dll 包含在您的资产文件夹中并使用它。
标签: c# unity3d plugins unity3d-5