1、Bmob介绍
Bmob 提供了实时数据与文件存储功能,数据存储除了常规应用文本信息的存储,还可以存储图片、视频、音频、地理位置等信息。使用Bmob基于Unity3D、UE4、微信小游戏、Cocos2Dx等游戏引擎开发的客户端,接入Bmob提供的客户端Game SDK后,通过Tcp、Udp、WebSocket等方式与服务端通讯,能在1小时内让单机游戏变成多人同时在线的联网游戏。
2、Bmob使用步骤
(1)、要是使用Bmob后台云数据库,需要先注册Bmob账号,在网址栏输入 www.bmob.cn 或者在百度输入“Bmob后端云”进行搜索,打开Bmob官网后,点击右上角的“注册”,即可注册账号。
(2)、注册完成之后登录使用。要使用Bmob云数据库服务我们的应用程序,需要先创建一个应用。点击“应用Key”获取应用的应用密钥,应用密钥是连接我们程序的一串加密字符串。
(3)、创建完成之后,需要下载官方的SDK ,建议到github上下载官方最新的SDK,下载链接:https://github.com/bmob/BmobSharp/releases
SDK支持多种平台,下载后解压,将Unity文件夹下的Bmob-Unity.dll文件放置到你的项目工程的 Assets/libs/ 目录下即可使用。
也可以根据官方的开发文档来学习全面的教程:http://doc.bmob.cn/
(4)、要在unity中使用Bmob云数据库需要在云数据库中创建数据表,第一次进入云数据库会发现有一个默认的User表,供我们存储应用的用户账号和密码。
(5)、现在已经准备完成,开始程序的使用,新建unity空项目,创建一个空物体,在空物体的属性面板上添加脚本BmobUnity组件,然后把Bmob后台账号里创建应用的应用Key,根据空物体上挂载的BmobUnity脚本暴露的变量去填写相应的Key。
(6)、接下来就是自己动手写操作数据库的代码,要操作数据库需要设置数据的模型类,
using cn.bmob.io;//设置数据模型类的时候需要引用此命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//数据模型类要继承BmobTable
public class BmobScore : BmobTable
{
//下面这两个字段是数据库中的字段,字段类型跟数据库中的一致
public BmobInt score { get; set; }
public string Playername { get; set; }
//重写都数据的方法,目的是重新赋值
public override void readFields(BmobInput input)
{
base.readFields(input);
this.score = input.getInt("FenShu");//括号中的字符串是表中的列,名字区分大小写,要跟数据库中的一致
this.Playername = input.getString("PlayerName");
}
//重写写数据的方法
public override void write(BmobOutput output, bool all)
{
base.write(output, all);
output.Put("FenShu", this.score);
output.Put("PlayerName", this.Playername);
}
}
(7)、设置完成数据的模型类之后就可以操作数据库了,操作之前需要初始化数据操作的脚本,
using cn.bmob.api;//需要引用此命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestBmob : MonoBehaviour
{
BmobUnity bmob;
void Start()
{
bmob = this.GetComponent<BmobUnity>();//获取BmobUnity脚本组件用来操作数据库
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Add();
}
}
void Add()
{
var data = new BmobScore();//创建数据模型对象
int score = Random.Range(0, 100);//为数据模型的字段赋值
data.score = score;
data.Playername = "player" + Random.Range(1, 11);
//数据的插入操作,此方法有两种方式,我这里采用三个参数的
//第一个参数是数据表的名字,第二个参数是要操作的数据模型类,第三个参数是回调函数,当操作数据完成后会返回的信息,回调函数的第一个参数是操作成功的参数信息,回调函数的第二个参数是操作失败的参数信息
bmob.Create("Score", data, (resp, exception) =>
{
if (exception != null)
{
Debug.Log("保存失败" + exception.Message);
}
else
{
Debug.Log("保存成功" + resp.createdAt);
}
});
}
}
(8)、以上的步骤操作完成之后就可以运行unity,来测试是否成功。
本篇为初次接触Bmob后台数据库的人作为抛砖引玉之用,后续更高级的用法,相信能看到这里的人心里都会有所了解该如何使用了。