無論我們做軟件還是做游戲,少不了的就是和數據打交道,對於要保存到本地的數據,我們可以采用的載體太多了。例如: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 = 100; 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