Unity微信小游戏使用微信云开发排行榜
这里的排行榜指的是,地区排行榜,按照玩家选择的省份,上传分数,进行省份之间的排行。好友排行榜的话,网上资料还是不少的,如果大家需要我可以再更新一篇讲好友排行榜做法
一、获得排行榜数据
首先是微信云函数:
-
// 云函数入口文件
-
const cloud = require('wx-server-sdk');
-
cloud.init({env:cloud.DYNAMIC_CURRENT_ENV});
-
-
//获取数据库的引用
-
const db = cloud.database();
-
const rankdata = db.collection('Ranking');
-
-
// 云函数入口函数
-
//获取排行榜所有数据
-
exports.main = async (event,context) => {
-
//const wxContext = cloud.getWXContext();
-
-
let data = await rankdata.get();
-
-
if(data.data.length==0){
-
return{
-
code:0
-
};
-
}
-
else{
-
return {
-
data:data.data
-
};
-
}
-
};
云函数部署完毕后,unity端即可直接调用,这里只贴上获得数据的函数,拿到数据后再显示出来就行了:
-
public void CallGetAreaRank(Action<List<RankData>> callback)
-
{
-
List<RankData> rankDatas = null;
-
//Debug.Log("CallGetRank");
-
var p = new C()
-
{
-
content = "haha"
-
};
-
//Debug.Log(JsonUtility.ToJson(p));
-
WX.cloud.CallFunction(new CallFunctionParam()
-
{
-
name = "getRank",
-
data = JsonUtility.ToJson(p),
-
success = (res) =>
-
{
-
//Debug.Log("success");
-
//Debug.Log(res.result);
-
-
var data = JsonMapper.ToObject(res.result);
-
if (data.ContainsKey("data"))
-
{
-
var gamedata = data["data"];
-
rankDatas = JsonMapper.ToObject<List<RankData>>(new JsonReader(gamedata.ToJson()));
-
}
-
else
-
{
-
-
}
-
callback?.Invoke(rankDatas);
-
},
-
fail = (res) =>
-
{
-
//Debug.Log("fail");
-
//Debug.Log(res.errMsg);
-
},
-
complete = (res) =>
-
{
-
//Debug.Log("complete");
-
//Debug.Log(res.result);
-
}
-
});
-
}
二、设置排行榜数据
微信云函数:
-
exports.main = async (event,context) => {
-
const _ = db.command
-
//查询用户是否已经保存过数据
-
let _isHas = await rankData.where({
-
area:event.content,
-
}).get();
-
-
//如果没有,首次保存
-
if(_isHas.data.length==0){
-
let _isAdd = null;
-
let addData = {
-
area:event.content,
-
score:1,//event.gamedata unity调用直接读event
-
}
-
_isadd = await rankData.add({
-
data:addData
-
})
-
return{
-
code:0,
-
res:_isadd,
-
data:addData,
-
};
-
}
-
//如果有数据,则更新
-
else{
-
return await rankData.where({
-
area:event.content
-
}).update({
-
data:{
-
area:event.content,
-
score:_.inc(1),//数据自增1
-
}
-
})
-
}
-
};
unity端调用:
-
public void CallSetAreaRank()
-
{
-
//Debug.Log("CallSetRank");
-
string userProvince = "省份";
-
var p = new C()
-
{
-
content = userProvince
-
};
-
-
//Debug.Log(JsonUtility.ToJson(p));
-
WX.cloud.CallFunction(new CallFunctionParam()
-
{
-
name = "setRankData",
-
data = JsonUtility.ToJson(p),
-
success = (res) =>
-
{
-
Debug.Log("success");
-
Debug.Log(res.result);
-
-
},
-
fail = (res) =>
-
{
-
Debug.Log("fail");
-
Debug.Log(res.errMsg);
-
},
-
complete = (res) =>
-
{
-
Debug.Log("complete");
-
Debug.Log(res.result);
-
}
-
});
-
}
好了,这次的分享就到这里了,主要难点就是云函数对数据库的操作,unity端只需要调用云函数获得数据进行显示就行了。
如果对你有帮助,欢迎点赞关注评论哦,有写的不对的地方欢迎指正,欢迎讨论
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhegbgjh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22