Bmob—移動後端雲端服務平台

來源:互聯網
上載者:User

標籤:

對於個人或者小團隊來說,開發一個有網路功能的遊戲是一件不容易的事情,必須掌握一門諸如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(0, 100);            data.playerName = "player" + rnd.Next(1, 10); ;            //添加一行資料,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—移動後端雲端服務平台

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.