zoukankan      html  css  js  c++  java
  • Bmob后端云之云数据库的使用

     把BmobUnity放到libs里面  下载连接:https://raw.githubusercontent.com/bmob/bmob-demo-csharp/master/examples/bmob-unity-demo/Assets/libs/Bmob-Unity.dll

    1.把BmobUnity挂在游戏物体上更改上面两个字符串属性

    把 id 和key改成自己的

     

     //下面步骤看代码:

    using UnityEngine;
    using System;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using cn.bmob.api;
    using cn.bmob.io;
    using cn.bmob.common;
    using cn.bmob.tools;
    using System.Net;
    
    public class HelloBmob : MonoBehaviour
    {
    
        private BmobUnity Bmob;
    
        // Use this for initialization
        void Start()
        {
            BmobDebug.Register(print);
            Bmob = GetComponent<BmobUnity>();
        }
    
        // Update is called once per frame
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                Application.Quit();
            }
        }
    
        const String TABLENAME = "T_BMOB_API";
    
        public class BmobGameObject : BmobTable
        {
            public BmobInt score { get; set; }
            public String playerName { get; set; }
            public BmobBoolean cheatMode { get; set; }
    
            public override void readFields(BmobInput input)
            {
                base.readFields(input);
    
                this.score = input.getInt("score");
                this.cheatMode = input.getBoolean("cheatMode");
                this.playerName = input.getString("playerName");
            }
    
            public override void write(BmobOutput output, Boolean all)
            {
                base.write(output, all);
    
                output.Put("score", this.score);
                output.Put("cheatMode", this.cheatMode);
                output.Put("playerName", this.playerName);
            }
        }
        //数据插入
        void create()
        {
            var data = new BmobGameObject();
            
            System.Random rnd = new System.Random();
            data.score = rnd.Next(-50, 170);
            data.playerName = "123";
            data.cheatMode = false;
    
            Bmob.Create(TABLENAME, data, (resp, exception) =>
            {
                if(exception != null){
                    print("保存失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                print("保存成功, @" + resp.createdAt);
            });
        }
        //数据更新
        void UpdateGame()
        {
            BmobGameObject game = new BmobGameObject();
            game.playerName = "pn_123";
            Bmob.Update(TABLENAME, "68ee8131ca", game, (resp, exception) =>
            {
                if (exception != null)
                {
                    print("保存失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                print("保存成功, @" + resp.updatedAt);
            });
        }
        //删除objectid="68ee8131ca"的数据
        void DeleteGame()
        {
            Bmob.Delete(TABLENAME, "68ee8131ca", (resp, exception) =>
            {
                if (exception != null)
                {
                    print("删除失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                print("删除成功, @" + resp.msg);
            });
        }
        //查询一行数据 objectId="68ee8131ca"
        void GetGame()
        {
            Bmob.Get<BmobGameObject>(TABLENAME, "68ee8131ca", (resp, exception) =>
            {
                if (exception != null)
                {
                    print("查询失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                BmobGameObject game = resp;
                print("获取的对象为: " + game.ToString());
            });
        }
        //条件查询数据 playerName="123" 的所有行数据一行就是一个BmobGameObject
        void FindQuery()
        {
            BmobQuery query = new BmobQuery();
            query.WhereEqualTo("playerName", "123");
            Bmob.Find<BmobGameObject>(TABLENAME, query, (resp, exception) =>
            {
                if (exception != null)
                {
                    print("查询失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                List<BmobGameObject> list = resp.results;
                foreach (var game in list)
                {
                    print("获取的对象为: " + game.ToString());
                }
            });
        }
        //条件查询数据 playerName="123" 的个数
        void FindQueryWithCount()
        {
            BmobQuery query = new BmobQuery();
            query.WhereEqualTo("playerName", "123");
            query.Count ();
            Bmob.Find<BmobGameObject>(TABLENAME, query, (resp, exception) =>
            {
                if (exception != null)
                {
                    print("查询失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                List<BmobGameObject> list = resp.results;
                BmobInt count = resp.count;
                print("满足条件的对象个数为: " + count.Get());
                foreach (var game in list)
                {
                    print("获取的对象为: " + game.ToString());
                }
            });
        }
    
        // 如果程序需要为用户添加额外的字段,需要继承BmobUser
        public class MyBmobUser : BmobUser
        {
            public BmobInt life { get; set; }
            public BmobInt attack { get; set; }
    
            public override void write(BmobOutput output, bool all)
            {
                base.write(output, all);
    
                output.Put("life", this.life);
                output.Put("attack", this.attack);
            }
    
            public override void readFields(BmobInput input)
            {
                base.readFields(input);
    
                this.life = input.getInt("life");
                this.attack = input.getInt("attack");
            }
        }
        //插入数据
        void Signup()
        {
            MyBmobUser user = new MyBmobUser();
            user.username = "test";
            user.password = "123456";
            user.email = "support@bmob.cn";
            user.life = 0;
            user.attack = 0;
    
            Bmob.Signup<MyBmobUser>(user, (resp, exception) =>
            {
                if (exception != null)
                {
                    print("注册失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                print("注册成功");
            });
        }
        //登录
        void Login(){
            Bmob.Login<MyBmobUser>("test", "123456", (resp, exception) => {
                if (exception != null)
                {
                    print("登录失败, 失败原因为: " + exception.Message);
                    return;
                }
                
                print("登录成功, @" + resp.username + "(" + resp.life + ")$[" + resp.sessionToken + "]");
    
                print("登录成功, 当前用户对象Session: " + BmobUser.CurrentUser.sessionToken);
            });
        }
        //更新
        void updateuser()
        {
            Bmob.Login<MyBmobUser>("test", "123456", (resp, ex) =>
                       {
                print(resp.sessionToken);
                MyBmobUser u = new MyBmobUser();
                u.attack = 1000;
                Bmob.UpdateUser(resp.objectId, u, resp.sessionToken, (updateResp, updateException) =>
                                {
                    if (updateException != null)
                    {
                        print("保存失败, 失败原因为: " + updateException.Message);
                        return;
                    }
                    
                    print("保存成功, @" + updateResp.updatedAt);
                });
            });
        }
        //重置
        void ResetPassword(){
            Bmob.Reset("support@bmob.cn", (resp, exception) => {
                if (exception != null)
                {
                    print("重置密码请求失败, 失败原因为: " + exception.Message);
                    return;
                }
                
                print("重置密码请求发送成功!");
            });
        }
        //查询用户
        void FindUser()
        {
            BmobQuery query = new BmobQuery();
            query.WhereEqualTo("username", "test");
            Bmob.Find<MyBmobUser>(BmobUser.TABLE, query, (resp, exception) =>
                                      {
                if (exception != null)
                {
                    print("查询失败, 失败原因为: " + exception.Message);
                    return;
                }
                
                List<MyBmobUser> list = resp.results;
                foreach (var user in list)
                {
                    print("获取的对象为: " + user.ToString());
                }
            });
        }
        
        void endpoint()
        {
            Bmob.Endpoint<Hashtable>("test", (resp, exception) => {
                if (exception != null)
                {
                    print("查询失败, 失败原因为: " + exception.Message);
                    return;
                }
    
                print("返回对象为: " + resp);
            });
        }
    
        void OnGUI()
        {
            float scale = 2.0f;
    
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                scale = Screen.width / 320;
            }
    
            float btnWidth = 100 * scale;
            float btnHeight = 25 * scale;
            float btnTop = 10 * scale;
            GUI.skin.button.fontSize = Convert.ToInt32(12 * scale);
    
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Create"))
            {
                create();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "Update"))
            {
                UpdateGame();
            }
    
            btnTop += btnHeight + 10 * scale;
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "QueryAll"))
            {
                FindQuery();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "QueryWithCount"))
            {
                FindQueryWithCount();
            }
    
            btnTop += btnHeight + 10 * scale;
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Get"))
            {
                GetGame();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "Delete"))
            {
                DeleteGame();
            }
    
            btnTop += btnHeight + 10 * scale;
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "Signup"))
            {
                Signup();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "Login"))
            {
                Login();
            }
    
            btnTop += btnHeight + 10 * scale;
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "updateuser"))
            {
                updateuser();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "ResetPassword"))
            {
                ResetPassword();
            }
    
            btnTop += btnHeight + 10 * scale;
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 - btnWidth, btnTop, btnWidth, btnHeight), "FindUser"))
            {
                FindUser();
            }
            if (GUI.Button(new Rect((Screen.width - btnWidth) / 2 + btnWidth, btnTop, btnWidth, btnHeight), "endpoint"))
            {
                endpoint();
            }
        }
    
    }
  • 相关阅读:
    读书笔记——吴军《态度》
    JZYZOJ1237 教授的测试 dfs
    NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论
    [JZYZOJ 1288][洛谷 1005] NOIP2007 矩阵取数 dp 高精度
    POJ 3904 JZYZOJ 1202 Sky Code 莫比乌斯反演 组合数
    POJ2157 Check the difficulty of problems 概率DP
    HDU3853 LOOPS 期望DP 简单
    Codeforces 148D. Bag of mice 概率dp
    POJ3071 Football 概率DP 简单
    HDU4405 Aeroplane chess 飞行棋 期望dp 简单
  • 原文地址:https://www.cnblogs.com/lichuangblog/p/8888043.html
Copyright © 2011-2022 走看看