我有以下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_stringify()。
当转换并记录时,我得到以下输出:0Zހ?和ﳀ�我应该得到GameSmart和OnIsGuest,但是我没有得到是什么导致了这种情况的发生?
发布于 2017-07-05 23:47:50
因此,解决这个问题的方法是将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);
});
}
});https://stackoverflow.com/questions/44891748
复制相似问题