[Unity] Unity+Bmob后台数据库 即使不会服务器。也能开发弱联网游戏

查看:3300 |回复:60 | 2015-10-5 20:01:13

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 成林 于 2018-5-15 21:13 编辑

52.jpg
作者原话:就算不会服务器 不会数据库 也可以拥有弱联网的Unity游戏开发
。。 这次开大招了,本来想写联通的三网SDK,不过 刚刚自学了Bmob 感觉太好用了。


学了Bmob之后 唯一担心的就是Bmob会倒闭,Bmob是一个后台服务器和数据库的解决商,服务器和数据库都是在Bmob自己的后台架设的。


问:我不会服务器,我不会数据库,不会网络传输协议,我就想用unity做个自带网络云数据库的游戏,做个排行榜的功能,请问要怎么办?
答: 用Bmob吧,而且有免费的个人使用版。




额,这不是广告,因为之前做了一个小游戏要用服务器和数据库 挂到百度云上了,用TOMCAT + JASON + MYSQL 出现的中文乱码的问题 头疼了很久   传输的字符编码改了又改还不行,蛋疼无比。万念俱灰之际发现了Bmob。。。。 然后在Bmob的官方网站上自学了一会 就会了基础的 联网数据库运用了,很简单,相信大家自学也会很快的。这里简单的教大家基础的数据创建 插入 查询 排序 条件 等~


工具清单: (回复可见


尊敬的游客,如果您要查看本帖关注 或 回复可见内容请关注回复后刷新页面查看!


步骤一 登陆Bmob官网进行账号注册和游戏创建

注册后进入后台 1.jpg



创建游戏成功后查看应用ID




记下APP ID 。然后打开Unity的项目


步骤二:在Unity调用bmob sdk 使用服务端数据库。
创建libs 文件夹 在Assest文件下



然后在需要联网的场景中的游戏对象挂上Bmob Unity 这个脚本


ApplicationID 就是 刚才在官网后台的那个  直接在面板上写,然后这就完成了初始化。
然后我们需要写一个脚本去调用这个Bmob Unity脚本对象 我写了一个HellowBmob 附上源码
首先是命名空间的引用:
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.tools;
using System.Net;

然后创建一个BmobUnity对象 获取我们刚才添加的那个脚本
private BmobUnity Bmob;


void Start()
    {
       //注册调试打印对象 这个可有可无,可以看到数据的传输信息 会在调试面板打印出来
        BmobDebug.Register(print);
       //获取Bmob的服务组件
        Bmob = gameObject.GetComponent<BmobUnity>();




    }

然后我们了解过数据库的同学 应该都知道 数据-> 数据项 -> 数据表 。
我们要先创建一个数据表 在创建一个个数据项,然后再一条一条的数据录入。
首先 如何创建数据表 有两个方法 一个是通过代码 在运行的时候创建,一个是事先通过后台操作创建。道理是一样的。方法在Bmob的教学文档中也有,我直接引用过来问题不大。
创建之前,我们已经想好了数据表中的数据项了,比如下面 我要创建一个简单的分数表,储存所以玩家的分数,那么这个表里就应该有玩家的姓名,和他对应的分数 这两个数据项。
表名命名为 ScoreTable  玩家姓名数据项 命名为 playerName (储存玩家姓名 数据类型为字符型) 玩家分数数据项命名为 score(储存玩家分数 数据类型为 整数型) 。
(这些命名不是规定的 是开发者自己定义的)


一 通过Unity脚本代码创建数据表
首先要创建一个BmobGameObject表类 集成 Bmob的表类。   

BmobGameObject也是开发者可以自由定义的命名

public class BmobGameObject : BmobTable
    {
        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, Boolean all)
        {
            base.write(output, all);


            output.Put("score", this.score);
            output.Put("playerName", this.playerName);
        }
    }


首先预先设定好表名
const String TABLENAME = "ScoreTable";
然后通过实例化该类的对象就可以创建数据表了。
//执行该函数,创建表
void create()
    {
       //实例化元组对象 (元组->元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组)
        var data = new BmobGameObject();

       //要插入元组的 分数
        data.score =100;
       //要插入元组的 姓名
        data.playerName = "123";

      //开始插入元组数据, TABLENAME是表名
        Bmob.Create(TABLENAME, data, (resp, exception) =>
        {
            if(exception != null){
                   //失败之后 执行的代码 (自带协程)
                print("保存失败, 失败原因为: " + exception.Message);
                return;
            }
            //成功之后 执行的代码 (自带协程)
            print("保存成功, @" + resp.createdAt);
        });
    }


附上Bmob 自学文档链接~ http://docs.bmob.cn/unity/fastst ... art&key=start_unity原帖地址:http://www.manew.com/thread-42442-1-1.html









评分

参与人数 2元素币 +20 活跃度 +20 贡献值 +1 展开 理由
神月辉夜 + 10 阅贴无数,楼主最强!
狼之独步 + 20 + 10 + 1 很不错的样子,&amp;#128516;

查看全部评分

2015-10-5 20:01:13  
 赞 赞 1

使用道具 登录

60个回答,把该问题分享到群,邀请大神一起回答。
2#
666666666666666666666
回复 收起回复
2015-10-5 22:41:17   回复
 赞 赞 1

使用道具 登录

3#
你们大神真会玩!
回复 收起回复
2015-10-6 08:05:34   回复
 赞 赞 1

使用道具 登录

4#
元素帖子强,满满正能量!
回复 收起回复
2015-10-6 09:20:29   回复
 赞 赞 1

使用道具 登录

5#
给力!元素有你更精彩
回复 收起回复
2015-10-6 17:51:29   回复
 赞 赞 1

使用道具 登录

6#
太好看了哈!~~~~~~~~~
回复 收起回复
2015-10-6 22:06:29   回复
 赞 赞 1

使用道具 登录

7#
带你赚币带你飞,元素里面有正妹!
回复 收起回复
2015-10-8 09:26:22   回复
 赞 赞 1

使用道具 登录

8#
想要成大触,天天上元素!
回复 收起回复
2015-11-2 11:44:24   回复
 赞 赞 1

使用道具 登录

10#
多谢楼主共享。
回复 收起回复
2015-11-16 10:50:20   回复
 赞 赞 1

使用道具 登录

11#
楼主辛苦了
回复 收起回复
2015-11-16 10:51:16   回复
 赞 赞 1

使用道具 登录

12#
6666这个就是数据安全不可保障
回复 收起回复
2015-11-18 15:53:06   回复
 赞 赞 1

使用道具 登录

13#
这个不得不说。很强悍
回复 收起回复
2015-11-19 09:30:04   回复
 赞 赞 1

使用道具 登录

14#
6666这个就是数据安全不可保障
回复 收起回复
2015-11-26 14:17:05   回复
 赞 赞 1

使用道具 登录

15#
好吧,了解一下成功案例
回复 收起回复
2015-11-27 10:12:49   回复
 赞 赞 1

使用道具 登录

17#
赞~顺便推荐siki的bomb教程
回复 收起回复
2016-3-7 14:15:10   回复
 赞 赞 1

使用道具 登录

18#
顺便推荐siki的bomb教程
回复 收起回复
2016-3-12 22:09:35   回复
 赞 赞 1

使用道具 登录

19#
看看怎么样吧,反正也还没有使用过呢
回复 收起回复
2016-3-13 11:59:57   回复
 赞 赞 1

使用道具 登录

20#
你们大神真会玩!
回复 收起回复
2016-4-4 13:10:51   回复
 赞 赞 1

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
1234下一页
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表