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);
    });
  }
});