Unity微信小游戏使用微信云开发记录

这篇具有很好参考价值的文章主要介绍了Unity微信小游戏使用微信云开发记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近项目上架微信小游戏,首先使用了微信官方sdk转成微信小游戏,官方地址如下:

https://github.com/wechat-miniprogram/minigame-unity-webgl-transform

官方给了各种指导,虽然都有但是都不太精哈哈

因为要做排行榜,云存档,而我司没服务器,那只能用微信云开发了。具体开通啥的初始步骤我就不写了,网上很容易查到。先主要记录一下怎么使用微信云数据库、云函数,实现云存档。

首先,新建云函数微信工程,然后云数据库UserData用来保存用户存档数据。新建云函数setUserData,用来上传数据。

Unity微信小游戏使用微信云开发记录

 

// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init({env:cloud.DYNAMIC_CURRENT_ENV});

//获取数据库的引用
const db = cloud.database();
const gamedata = db.collection('UserData');

// 云函数入口函数
//上传用户存档数据
exports.main = async (event,context)  => {
   const wxContext = cloud.getWXContext();

   //查询用户是否已经保存过数据
   let _isHas = await gamedata.where({
       openid:wxContext.OPENID
   }).get();

   //如果没有,首次保存
   if(_isHas.data.length==0){
       let _isAdd = null;
       let addData = {
           openid:wxContext.OPENID,
           gamedata:event,//event.gamedata unity调用直接读event
       }
       _isadd = await gamedata.add({
           data:addData
       })
       return{
           code:0,
           res:_isadd,
           data:addData,
       };
   }
   //如果有数据,则更新
   else{
       return await gamedata.where({
           openid:wxContext.OPENID
       }).update({
           data:{
               openid:wxContext.OPENID,
               gamedata:event,//event.gamedata
           }
       })
   }
};

接下来,可以直接在unity端调用微信api,调用云函数(ps:我也是后来才发现,本来还想着还得在微信端写js)

private void CallSetUserData(GameUserData gameUserData)
    {
        Debug.Log("CallSetUserData");
        WX.cloud.CallFunction(new CallFunctionParam()
        {
            name = "setUserData",
            //用户数据类转为json,测试时我试过传空串会导致云函数报错,原因不明,懂得大佬可以评论区教教我哈哈
            data = JsonUtility.ToJson(gameUserData),
            success = (res) =>
            {
                Debug.Log("CallSetUserData success");
                //Debug.Log(res.result);
            },
            fail = (res) =>
            {
                Debug.Log("fail");
                //Debug.Log(res.errMsg);
            },
            complete = (res) =>
            {
                Debug.Log("complete");
                //Debug.Log(res.result);
            }
        });
    }

同理,从云数据库获取用户数据,微信端:

// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init({env:cloud.DYNAMIC_CURRENT_ENV});

//获取数据库的引用
const db = cloud.database();
const gamedata = db.collection('UserData');

// 云函数入口函数
//获取用户存档数据
exports.main = async (event,context)  => {
   const wxContext = cloud.getWXContext();

   //查询用户是否已经保存过数据
   let data = await gamedata.where({
       openid:wxContext.OPENID
   }).get();
   
   if(data.data.length==0){
    return{
        code:0
    };
   }
   else{
    return {
        data:data.data[0].gamedata
    };
   }
};

unity 端:

private void CallGetUserData()
    {
        //Debug.Log("CallGetUserData");
        var p = new C()
        {
            content = "haha"
        };
        WX.cloud.CallFunction(new CallFunctionParam()
        {
            name = "getUserData",
            //不填data,或填空串时,调用云函数失败,原因不明,大佬评论区教我哈哈
            data = JsonUtility.ToJson(p),
            success = (res) =>
            {
                //Debug.Log("CallGetUserData success");
                //Debug.Log(res);
                //云数据保存到本地
                var data = JsonMapper.ToObject(res.result);
                if (data.ContainsKey("data"))
                {
                    var gamedata = data["data"];
                }
                else
                {
                    //数据库无数据
                }
                //Debug.Log("转换json数据:" + userData);
            },
            fail = (res) =>
            {
                //Debug.Log("fail");
                //Debug.Log(res.errMsg);
                //没有云存档,或获取云存档失败
            },
            complete = (res) =>
            {
                //Debug.Log("complete");
                //Debug.Log(res.result);
            }
        });
    }

ok,以上就是我的踩坑记录,希望能够帮到你,欢迎点赞评论关注~

js代码严重参考微信官方B站视频,很有用:5-4 储存游戏数据_哔哩哔哩_bilibili

后续开发完排行榜,如果记得我也会继续更新一篇文章,感兴趣的小伙伴可以关注一波~文章来源地址https://www.toymoban.com/news/detail-407573.html

到了这里,关于Unity微信小游戏使用微信云开发记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity学习记录:制作双屏垃圾分类小游戏

    要实现的功能 游戏操作 在规定时间内,垃圾通过拖拽进入正确垃圾桶的容器,垃圾在这里消失,飞入第二个屏上对应垃圾桶的位置并实现加分和加时间的效果,垃圾拖拽进入不正确的垃圾桶,垃圾会返回到原来的位置,同时,相应的时间也会减少 胜利和失败的条件: 胜利:

    2024年02月03日
    浏览(37)
  • Unity - 微信小游戏

    总参考:Unity WebGL 微信小游戏适配方案(公测)   下载 Unity插件,并导入至游戏项目中,版本更新请查看更新日志 请查阅推荐引擎版本,安装时选择 WebGL 组件 最终选择 Unity2021.2.5f1c1 InstantGame 前往Node官网安装长期稳定版 之前已安装 v16.17.0 前往微信开发者工具下载安装 Stable

    2024年02月06日
    浏览(42)
  • 【Unity小游戏】游戏开发案例-Unity打造畅玩无阻的小游戏(上)

    乒乓克隆 使用立方体建造竞技场、球拍和球。 移动球和球拍。 击球并得分。 让相机感受到冲击力。 给游戏一个抽象的霓虹灯外观。 这是有关基础游戏的系列教程中的第一个教程。在其中,我们将创建一个简单的 Pong 克隆。 本教程是使用 Unity 2021.3.16f1 制作的。 本系列将涵

    2024年02月13日
    浏览(31)
  • 现有Unity转微信小游戏

    关于微信小游戏开发的内容在《Unity WebGL 微信小游戏适配方案》中有详细,这里会忽略大部分更深入的细节,大家可以自行在下面的地址中找到答案。 此篇文章的目的是带着大家快速的把自己已有的游戏转成微信小游戏。 《Unity WebGL 微信小游戏适配方案》地址: https://gith

    2023年04月08日
    浏览(60)
  • unity转微信小游戏数据存储

    unity程序转成微信小游戏以后 File.WriteAllText 和 File.ReadAllText由于路径问题不生效。 这个时候需要采用微信自己的存储路径来把用户信息保存下来。 private void LoadPlayerData() { #if UNITY_EDITOR || UNITY_ANDROID || UNITY_IOS if (File.Exists(filePath)) { playerDataString = File.ReadAllText(filePath); m_PlayerData

    2024年02月10日
    浏览(30)
  • unity微信小游戏——排行榜

    设置时记住排行榜唯一标识 此处建议使用官方案例的UI进行修改 minigame-unity-webgl-transform: Unity WebGL 微信小游戏适配方案 (gitee.com) DemoRanking这个项目就是 1.新建Canvas 此处要选择Overlay 否则排行榜会无法拖动 此处RankingBox默认状态为SetActive(false) bg:排行榜背景 也可以把背景让在

    2024年02月02日
    浏览(42)
  • Unity项目转微信小游戏 微信小程序保姆教程,繁杂问题解决,及微信小游戏平台简单性能测试

    借着某人需求,做了一波简单的技术调研:将Unity项目转换为微信小游戏。 本文主要内容:Unity转换小游戏的步骤,遇到问题的解决方法,以及简单的性能测试对比 微信小游戏的限制 微信小游戏对程序包体大小有严格限制:首包必须小于2M,首包加分包(后加载)不得大于

    2024年02月05日
    浏览(42)
  • Unity微信小游戏资源下载失败问题

    unity导出微信小游戏后,打开报错 plugin.js:77 [PLUGIN ERROR 11:30.26.366] 下载资源包失败: networkType: wifi ; isVisible: true downloadFile:fail createDownloadTask:fail invalid url {}(env: Windows,mg,1.06.2210310; lib: 2.27.2) 这个问题是导出时没有填写游戏资源CDN 原来的版本没问题,升级之后出现的 游戏资源CD

    2024年02月09日
    浏览(64)
  • Unity微信小游戏登录授权获取用户信息

    最近需要在接微信获取用户信息的功能,在小游戏官方API中翻找资料。不得不说官方接口很多、很全,但是真的很乱而且部分遗漏。 对于不明所以的人来说,真的非常不友好。文档一堆堆的罗列下来,有些也不知道要怎么组合使用。 文档下有不少留言也是“骂骂咧咧”想必

    2024年02月02日
    浏览(46)
  • Unity转微信小游戏 HybridCLR + YooAsset 实践

    参考链接:https://github.com/wechat-miniprogram/minigame-unity-webgl-transform?tab=readme-ov-file Unity 2021.3.15f1c1 Unity 2021.2.5f1c302 wxSDK HybridCLR 5.0.0 YooAsset 1.5.7 后台配置白名单 微信小游戏注意事项: 不支持同步加载。 不支持资源加密。 不支持多Package 关闭WebGL本地缓存 参考地址 因为微信小游戏

    2024年04月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包