无论我们做软件还是做游戏,少不了的就是和数据打交道,对于要保存到本地的数据,我们可以采用的载体太多了。例如:txt,Xml,Sqlite,SqlServer,Mysql等等,具体使用什么那就视情况而定了。但是假如我们要在游戏中要做一个在线排行榜,我们会怎么解决呢?有些人立刻会想到把数据放到服务器上不就OK了!对的,我也是这么想的!实践才是检验真理的唯一标准!废话不多说,就是干!

1,首先介绍下Bmob云。

  Bmob可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。对于很多Android/ios/wp个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,还需要考虑服务器端的构建,这一切对于移动开发者来说,都是一个冗长的噩梦。但是在Bmob平台上,您只需注册一个帐号,成功后申请创建任意多个数据库,获得对应的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用存取API,进行数据的任意操作。有了Bmob,您在3分钟内就可以学会如何开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便您浏览终端保存的各种信息。不信的话可以尝试下!几乎查不到太多示例工程,自己摸索了两天,分享下!

先进入官网去看看:http://www.bmob.cn/

1.1我们要做的第一步就是注册用户了,点击注册。

1.2 大家注册好后,直接登录就可以了!

1.3 创建应用并产生AppID号,这个在接下来的Unity 工程中可是个重角色。

1.4 我们先看看Bmob到底可以干嘛!

OK,我们目前关心的已经可以实现了!

2.1 打开Unity 建一个空的工程!

既然使用人家的服务器,肯定少了点什么没有添加到工程里?对了,人家的SDK嘛!添加到工程即可,稍后会共享给大家的!准备工作就绪,可以代码了!

2.2 创建一个简单的脚本 TestBmob1.cs 和MyGameTable.cs

见名知意,测试脚本和数据实体类,我们需要在Bmob服务器上创建我们自定义的表!

接下来添加字段了:playername,score

添加完成,如下:

MyGametable.cs

using UnityEngine;
using System.Collections;
using cn.bmob.io; public class MyGameTable : BmobTable
{
/// <summary>
/// Bmob服务器端我们定义的表名
/// </summary>
public const string TABLENAME = "MyGameTable"; /// <summary>
/// 玩家姓名
/// </summary>
public string playerName { get; set; }
/// <summary>
/// 玩家得分
/// </summary>
public BmobInt score { get; set; } /// <summary>
/// 成员函数
/// </summary>
/// <param name="input"></param>
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);
}
}

TestBmob1.cs

using UnityEngine;
using System.Collections;
using cn.bmob.api;
using cn.bmob.tools;
using cn.bmob.io;
using testBmob; public class TestBmob1 : MonoBehaviour
{
private BmobUnity Bmob; // Use this for initialization
void Start()
{
BmobDebug.Register(print);
Bmob = gameObject.GetComponent<BmobUnity>();
} void OnGUI()
{
if (GUILayout.Button("Insert"))
{
InsertData();
}
if (GUILayout.Button("GetData"))
{
getRecoard();
}
if (GUILayout.Button("Update"))
{
updateData();
}
if (GUILayout.Button("GetAllData"))
{
getAllInfo();
}
if (GUILayout.Button("删除数据"))
{
deleteData();
}
} #region
/// <summary>
/// 插入数据
/// </summary>
public void InsertData()
{
MyGameTable mg = new MyGameTable();
mg.score = ;
mg.playerName = "testBmob"; Bmob.Create(MyGameTable.TABLENAME, mg, (resp, exception) =>
{
if (exception != null)
{
Debug.Log("保存失败,原因: " + exception.Message);
}
else
{
Debug.Log("保存成功" + resp.createdAt);
}
});
}
/// <summary>
/// 获取表所以信息
/// </summary>
public void getAllInfo()
{
Bmob.Delete(MyGameTable.TABLENAME, "4d05c4cd58", (resp, exception) =>
{
if (exception != null)
{
Debug.Log("删除失败, 失败原因为: " + exception.Message);
return;
}
else
{
Debug.Log("删除成功, @" + resp.msg);
}
});
}
/// <summary>
/// 查询数据
/// </summary>
public void getRecoard()
{
MyGameTable mg = new MyGameTable(); Bmob.Get<MyGameTable>(MyGameTable.TABLENAME, "2TLe999G", (resp, exception) =>
{
if (exception != null)
{
Debug.Log("查询失败, 失败原因为: " + exception.Message);
return;
} MyGameTable game = resp;
Debug.Log(game.playerName + "," + game.score + "," + game.objectId);
Debug.Log("获取的对象为: " + game.ToString());
});
}
/// <summary>
/// 更新数据
/// </summary>
public void updateData()
{
MyGameTable game = new MyGameTable();
game.playerName = "wuzhang";
Bmob.Update(MyGameTable.TABLENAME, "4d05c4cd58", game, (resp, exception) =>
{
if (exception != null)
{
Debug.Log("保存失败, 失败原因为: " + exception.Message);
return;
} Debug.Log("保存成功, @" + resp.updatedAt);
});
}
/// <summary>
/// 删除数据
/// </summary>
public void deleteData()
{
Bmob.Delete(MyGameTable.TABLENAME, "4d05c4cd58", (resp, exception) =>
{
if (exception != null)
{
Debug.Log("删除失败, 失败原因为: " + exception.Message);
return;
}
else
{
Debug.Log("删除成功, @" + resp.msg);
}
});
}
#endregion
}

2.3 将脚本挂载到MainCamera上运行下看看:

显示插入数据成功了,还是不放心,看看后台数据库吧?

插入数据OK了吧?其它增删查改就简单了!

查询一下吧!

更新下数据playername改成楼主名字:wuzhang

删除数据

好了,今天就学习到这里吧!大家可以先了解下Bmob也可以去官网上看看你API!

下次学点更有意思的:上传文件,读取文件,下载图片,邮箱验证功能等!

PS:重要的一点忘说了,AppID。

就用在这里,我们所有的操作都是基于AppID的,相当于是对你创建应用的唯一标识!

工程源码链接:https://github.com/wuzhangwuzhang/Bmob

Unity之Bmob云存储一的更多相关文章

  1. openstack-swift云存储部署(二)

    接上篇,swift-proxy和swift-store的安装 先说一下服务器分配 swift-proxy和keystone部署在192.168.25.11 swift-store是两台  分别是192 ...

  2. openstack-swift云存储部署(一)

    最近因为工作的需要搭建了一套swift云存储架构 我们先来解读一下里面的技术知识点:swift服务是属于openstack中的一种组件服务,openstack中的组件服务还有keystone.Nova ...

  3. phpcmsv9 阿里云OSS云存储整合教程

    该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...

  4. Microsoft Azure 云存储服务概念

    本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...

  5. 自己搭建云存储(WIFI路由器上接硬盘)

    欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=49 http://www.cnet.com/how-to/share-an-extern ...

  6. java servlet手机app访问接口(三)高德地图云存储及检索

    这篇关于高德地图的随笔内容会多一点, 一.业务说明     对应APP业务中的成员有两类,一是服务人员,二是被服务人员,  主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登 ...

  7. ios每日一发--Leanclude数据云存储以及登录 注册账户

    利用LeanCloud来实现注册账号,存储账号以及,登录时查询账号是否正确.集成方式很简单可以看这里的官方文档.地址是这里: https://leancloud.cn/docs/ 在这里创建应用,以及 ...

  8. 云存储性能测试工具--COSBench安装

    COSBench安装 Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 1 环境 1.1 操作系统 COSBench可 ...

  9. 自动备份SQL数据库到云存储Storage

    如何自动备份SQL数据库到Storage呢. 前提条件需要SQL Server2012 SP1 CU2或更高版本 1. 备份SQL Azure数据库到云存储Storage 1)在SQL Server ...

随机推荐

  1. C#获取文件和文件夹大小

    代码如下: /// <summary> /// 获取文件夹大小 /// </summary> /// <param name="dirPath"> ...

  2. asp.net服务器向客户端弹出对话框,但不使页面边白板

    1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; 5: ...

  3. hdu Big Number 求一个数的位数

    Problem Description In many applications very large integers numbers are required. Some of these app ...

  4. POJ 1286 Necklace of Beads(项链的珠子)

    Necklace of Beads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7874   Accepted: 3290 ...

  5. DataTable 导出Excel 下载 (NPOI)

        public class ExcelHelper { public void DownLoadExcelNew(System.Data.DataTable data, Hashtable h, ...

  6. android 登录界面

    http://blog.csdn.net/jiabinjlu/article/details/6920967 http://blog.csdn.net/myserverthepeople/articl ...

  7. poj3537--Crosses and Crosses

    题意:有个一维棋盘,两人轮流下棋,然后谁连成三个谁赢 记得去年fj夏令营有见过这题,但是太弱了, 不会做. 记忆化搜索,如果n<=3肯定先手必胜,递推即可. #include<iostre ...

  8. SGU 294 He's Circles

    题意:一个项链有n个珠子,每个珠子为黑色或白色.问有多少种不同的项链? 注意,n的数量十分大,因此,我们枚举i(1<=i<=n),令L=n/i,求出L的欧拉函数,则这些数和L互质,因此gc ...

  9. 操作系统对的IIS版本

    IIS版本 Windows版本 备注 IIS 1.0 Windows NT 3.51 Service Pack 3   IIS 2.0 Windows NT 4.0   IIS 3.0 Windows ...

  10. elasticsearch 性能测试

    最近花很大的经历来做性能测试,把结果整理到了ppt中,可能有个别地方不准,但是可以看看一个趋势. 主要分为两部分,一部分是写入elasticsearch性能,一部分是查询测试,elasticsearc ...