对于个人或者小团队来说,开发一个有网络功能的游戏是一件不容易的事情,必须掌握一门诸如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后台数据如下:

Bmob—移动后端云服务平台的更多相关文章

  1. Bmob移动后端云服务平台--Android从零開始--(二)android高速入门

    Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...

  2. Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob

    Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob 在正式的项目开发中,单client不能满足我们的需求,须要实现client与服务端的连接. 而在编写Android服务端代码 ...

  3. Bmob 移动后端云服务器平台实现登录注册

    源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己 ...

  4. Android之Bmob移动后端云服务器

    源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己 ...

  5. SAAS云平台搭建札记: (一) 浅论SAAS多租户自助云服务平台的产品、服务和订单

    最近在做一个多租户的云SAAS软件自助服务平台,途中遇到很多问题,我会将一些心得.体会逐渐分享出来,和大家一起探讨.这是本系列的第一篇文章. 大家知道,要做一个全自助服务的SAAS云平台是比较复杂的, ...

  6. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...

  7. 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

    平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了 ...

  8. PAAS云服务平台

    云计算是一种可以方便.按需从网络訪问的.可配置的.共享的资源池(如网络.server.存储.应用程序和服务)模型,且仅仅需最少的管理(服务提供方交互)就可以高速供应和公布该模型. 云计算平台的核心部分 ...

  9. BaaS后端即服务 - 概念篇

    摘要: 什么是BaaS? BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.Ba ...

随机推荐

  1. css之padding,marging

    padding:内边距,所有浏览器都支持,不允许使用负值 继承内部格式生成了10px的边距. 属性: auto:浏览器计算机内边距. length:规定以具体单位计的内边距值,比如像素.厘米等.默认值 ...

  2. js阻止浏览器默认行为

    js阻止浏览器默认行为 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  3. MySQL下载、安装和修改root密码

    一.下载地址:MySQL_5.6.22_winx64_XiaZaiBa :http://rj.baidu.com/soft/detail/12585.html?ald 二.安装软件,安装到指定的路径, ...

  4. Ext JS 5的声明式事件监听

    在前文<在Ext JS 5使用ViewControllers>中,简单的介绍了Ext JS 5的一项重要改进——声明式事件监听.在本文,将深度探讨如何使用声明式事件监听啦简化应用程序的视图 ...

  5. 剑指offer系列49--求1+2+...+N的和

    [题目]求1+2+3+…+n, * 要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). package com.exe10.offer ...

  6. C语言每日一题之No.1

    鉴于在学校弱弱的接触过C,基本上很少编程,C语言基础太薄弱.刚好目前从事的是软件编程,难度可想而知.严重影响工作效率,已无法再拖下去了.为此,痛下决心恶补C语言.此前只停留在看书,光看好像也记不住,C ...

  7. C#中判断子窗体是否存在

    可在父窗体中定义一个全局变量 public static Form form; 然后在秀出子窗体的点击事件中增加加下代码 if (form == null) { //窗体不存在时,实例化子窗体,并显示 ...

  8. java.lang.StackOverflowError: stack size 8MB

    java.lang.StackOverflowError: stack size 8MB at android.text.TextUtils.getChars(TextUtils.java:86) a ...

  9. HTTP头域列表与解释 之 request篇

    HTTP 头域是HTTP协议中请求(request)和响应(response)中的头部信息,其实就是HTTP通信的操作参数,告诉web服务器和浏览器怎样处理这个通信.HTTP头从一个请求信息或者响应信 ...

  10. Objective-C语法汇总

    1.方法前的加减号 Objective-C中是没有public与private的概念的,即可以认为全部都是public.减号表示的是一个函数.方法.消息的开始.加号则表示不需要创建一个类的实例,其他类 ...