Unity微信小游戏打开游戏圈

微信游戏圈目前不再依赖 gameClubButton而使用新接口wx.createPageManager()实现跳转。但是当前的微信小游戏UnitySDK还没有适配wx.createPageManager(),我们需要通过自定义接口实现调用。步骤如下:


在Assets/Plugins目录下新建wx.jslib文件,名字可以自定义,添加以下代码:

mergeInto(LibraryManager.library, {
    WX_CreatePageManager: function() {
        window.WXWASMSDK.WX_CreatePageManager();
    },
});

新建一个cs类,添加以下代码:

    using System.Runtime.InteropServices;
    public class WxUtils
    {
        [DllImport("__Internal")]
        private static extern void WX_CreatePageManager();
    
        public static void CreatePageManager()
        {
            WX_CreatePageManager();
        }
    }

    在Unity层可以直接调用CreatePageManager方法。


    打包微信小游戏,导出微信小游戏工程:

    注明[DllImport("__Internal")]之后,在打包微信小游戏之后,可以在微信小游戏工程目录中的webgl.wasm.symbols.unityweb文件中找到WX_CreatePageManager方法。


    在微信小游戏工程中的unity-sdk目录下创建wxutils.js文件:

    export default {
        // 游戏圈
        WX_CreatePageManager(){
          const pageManager = wx.createPageManager();
          pageManager.load({
           openlink: 'xxxxxxx-xxxxxx', // 由不同渠道获得的OPENLINK值
    	  }).then((res) => {
            // 加载成功,res 可能携带不同活动、功能返回的特殊回包信息(具体请参阅渠道说明)
            console.log("[wxutils]"+res);
          
            // 加载成功后按需显示
            pageManager.show();
          }).catch((err) => {
            // 加载失败,请查阅 err 给出的错误信息
            console.error("[wxutils]"+err);
          })
        }
    }

    openlink处填入自己项目的OPENLINK值。


    在unity-sdk/index.js中引入wxutils.js:

    import wxutils from './wxutils';


    设置微信小程序基础库版本:

    wx.createPageManager()是微信小程序基础库3.6.7开始支持。


    之后就可以真机测试在微信小游戏中打开微信游戏圈了。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值