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”获取应用的应用密钥,应用密钥是连接我们程序的一串加密字符串。

BMOP 云服务 bmob云数据库_操作数

(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表,供我们存储应用的用户账号和密码。

BMOP 云服务 bmob云数据库_云数据库_02

(5)、现在已经准备完成,开始程序的使用,新建unity空项目,创建一个空物体,在空物体的属性面板上添加脚本BmobUnity组件,然后把Bmob后台账号里创建应用的应用Key,根据空物体上挂载的BmobUnity脚本暴露的变量去填写相应的Key。

BMOP 云服务 bmob云数据库_云数据库_03

(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后台数据库的人作为抛砖引玉之用,后续更高级的用法,相信能看到这里的人心里都会有所了解该如何使用了。