Javascript 指针\u stringify正在返回乱码文本
我有以下Javascript 指针\u stringify正在返回乱码文本,javascript,c#,unity3d,Javascript,C#,Unity3d,我有以下lib.jslib文件 mergeInto(LibraryManager.library, { IsGuestUser: function (objectName, objectMethodName) { gamesmart.user.isGuest(function (result) { console.log(Pointer_stringify(objectName), Pointer_stringify(objectMethodName), result);
lib.jslib
文件
mergeInto(LibraryManager.library, {
IsGuestUser: function (objectName, objectMethodName) {
gamesmart.user.isGuest(function (result) {
console.log(Pointer_stringify(objectName), Pointer_stringify(objectMethodName), result);
gameSmartGameInstance.SendMessage(Pointer_stringify(objectName), Pointer_stringify(objectMethodName), result);
});
}
});
从这里调用:
namespace GameSmart {
public class User : API {
[DllImport("__Internal")]
public static extern void IsGuestUser(string objectName, string objectMethodName);
public static void IsGuest(string objectName, string objectMethodName) {
IsGuestUser(objectName, objectMethodName);
}
}
}
并且是这样开始的:
public class Test : MonoBehaviour {
void Start() {
GameSmart.User.IsGuest("GameSmart", "OnIsGuest");
}
}
如上所示,我将GameSmart
和OnIsGuest
传递给JavaScript,当它到达JavaScript时,我对这两个值调用Pointer\u stringify()
转换并记录后,我得到以下输出:
0Zހ,因此修复方法是将Pointer_stringify
移动到匿名函数之外,因此看起来像这样:
mergeInto(LibraryManager.library, {
IsGuestUser: function (objectName, objectMethodName) {
var jsObjectName = Pointer_stringify(objectName);
var jsObjectMethodName = Pointer_stringify(objectMethodName);
gamesmart.user.isGuest(function (result) {
gameSmartGameInstance.SendMessage(jsObjectName, jsObjectMethodName, result);
});
}
});