Bmob—移动后端云服务平台
2024-10-07 01:08:05
对于个人或者小团队来说,开发一个有网络功能的游戏是一件不容易的事情,必须掌握一门诸如Java/.net/php这类的服务器开发语言。
Bmob云服务方便了开发者。Bmob可以给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息,让开发者们可以不需要关注服务器后端的事情,只需要使用Bmob的Android/iOS/Cocos2d-x/Unity 等SDK就可以实现。
下面我们通过一个简单的实例来了解一下bmob的使用。
1.在Bmob官网上注册一个账号。(Bmob官网:http://www.bmob.cn/)
2.下载csharp sdk. 里面有三个文件:unity,Windows和WindowsPhone8,我们需要的是Unity下的Bmob-Unity.dll,将该文件放在项目中libs文件夹下。
3.在应用面板创建一个应用,获取该应用的密钥(Application ID)。在数据浏览下,创建所需要的表以及字段。(新建Score表,创建score和playerName两个字段)
4.将BmobUnity脚本挂在到Camera上,Application Id粘过来。
5.创建与Score表相对应的Model模型:BmobGameObject:BmobTable,必须实现BmobTable接口。
using UnityEngine;
using System.Collections;
using cn.bmob.io; public class BmobGameObject : BmobTable
{
//score、playerName是后台数据表对应的字段名称
public BmobInt score { get; set; }
public string playerName { get; set; } //从数据表中读取
public override void readFields(BmobInput input)
{
base.readFields(input); this.score = input.getInt("score");
this.playerName = input.getString("playerName");
} //写入数据表
public override void write(BmobOutput output, bool all)
{
base.write(output, all); output.Put("score", this.score);
output.Put("playerName", this.playerName);
}
}
6.测试
using UnityEngine;
using System.Collections;
using cn.bmob.api;
using cn.bmob.io;
using System.Collections.Generic; public class BmobTest : MonoBehaviour {
private BmobUnity bmob;
private string tableName;
// Use this for initialization
void Start () {
bmob = this.GetComponent<BmobUnity>();
tableName="Score";
} // Update is called once per frame
void Update ()
{
#region 添加一行数据 Space
if (Input.GetKeyDown(KeyCode.Space))
{
//创建数据对象
var data = new BmobGameObject();
//设置值
System.Random rnd = new System.Random();
data.score = rnd.Next(, );
data.playerName = "player" + rnd.Next(, ); ; //添加一行数据,Score为新建的数据表名
bmob.Create(tableName, data, (resp, exception) =>
{
if (exception != null)
{
print("保存失败, 失败原因为: " + exception.Message);
return;
} print("保存成功, @" + resp.createdAt);
//resp.objectId
});
}
#endregion #region 获取一行数据 A
if (Input.GetKeyDown(KeyCode.A))
{
string objectId = "d95534876e";
bmob.Get<BmobGameObject>(tableName, objectId, (resp, exception) =>
{
if (exception != null)
{
print("查询失败, 失败原因为: " + exception.Message);
return;
} BmobGameObject game = resp;
print("获取的对象为: " + game.ToString());
print("获取对象的分数为:"+game.score.ToString());
});
}
#endregion #region 修改一行数据 B
if (Input.GetKeyDown(KeyCode.B))
{
BmobGameObject game = new BmobGameObject();
game.playerName = "pn_123";
string objectId = "d95534876e";
bmob.Update(tableName, objectId, game, (resp, exception) =>
{
if (exception != null)
{
print("修改失败, 失败原因为: " + exception.Message);
return;
} print("修改成功, @" + resp.updatedAt);
});
}
#endregion #region 删除一行数据 D
if (Input.GetKeyDown(KeyCode.D))
{
string objectId = "d95534876e";
bmob.Delete(tableName, objectId, (resp, exception) =>
{
if (exception != null)
{
print("删除失败, 失败原因为: " + exception.Message);
return;
} print("删除成功, @" + resp.msg);
});
}
#endregion #region 查询所有数据 Q
if (Input.GetKeyDown(KeyCode.Q))
{
//创建一个BmobQuery查询对象
BmobQuery query = new BmobQuery();
//查询playerName字段值为player1的记录
query.WhereEqualTo("playerName", "player1");
// 默认情况下,系统实际上并不会返回所有的数据,而是默认返回10条数据记录,你可以通过setLimit方法设置返回的记录数量
//query.Limit("20"); query.Skip(20);
//SQL中的条件查询query.Where...来判断
bmob.Find<BmobGameObject>(tableName, query, (resp, exception) =>
{
if (exception != null)
{
print("查询失败, 失败原因为: " + exception.Message);
return;
}
//List<T>的命名空间System.Collections.Generic.IList<T>
//对返回结果进行处理
List<BmobGameObject> list = resp.results;
foreach (var game in list)
{
print("获取的对象为: " + game.ToString());
}
});
}
#endregion
}
}
bmob后台数据如下:
最新文章
- 2016-2017-2《程序设计与数据结构》学生博客&;git@OSC
- Android开发:关于WebView
- laravel 实现上传 excel
- appcan.slider.js探索
- tilecache2.11在windows apache2.22安装部署
- Convention插件与“约定”支持
- 如何将Oracle安装为Linux服务
- sql server中的系统数据库
- Laravel中使用Redis
- ListView random IndexOutOfBoundsException on Froyo
- bzoj 2821 作诗 分块
- 【CF802C】Heidi and Library(网络流)
- 027 ResourceBundle.getBundle方法
- Caused by: java.lang.ClassNotFoundException: Could not load requested class :XXX.XXX.XXX 异常处理
- vue_02 开发过程中的问题记载
- 奇怪的组数length属性
- Redis 安装、配置、集群
- 20165313 《Java程序设计》第八周学习总结
- BZOJ 3564: [SHOI2014]信号增幅仪 最小圆覆盖
- CAS (13) —— CAS 使用Maven Profile支持多环境编译
热门文章
- python file operation
- DMALL刘江峰:生鲜市场具有巨大O2O改造空间
- eclipse报An error has occurred,See error log for more details. java.lang.NullPointerException错误
- Centos Mysql 升级
- DW(一):大数据DW架构参考
- phpcmsv9如何实现添加栏目时不在首页内容区显示只在导航栏显示
- php生成二维码可以有以下几种方式
- DEBUG测试
- input 字符限制
- 剑指offer系列44---只出现一次 的数字