文档章节

使用unity3d 接入anySDK的总结1

习惯了幻想
 习惯了幻想
发布于 2015/12/19 16:14
字数 1205
阅读 156
收藏 0

    原先的2d项目已经告一段落,接下来是打算学习unity3d的,进入公司unity项目以后由于之前有接sdk的经验,所以进入项目组后第一个工作内容就是给我们unity游戏接入anySDK。这几天通过自己踩坑和请教主程以后,大概算是把登录这块搞定了。

    其实anySDK的文档非常的详细(比起同为触控的cocos,anySDK的文档容我赞一下),最好的方式就是去git上下载官方的例子,地址:https://github.com/AnySDK/

    接入anySDK需要的东西主要是两个,一个是anySDK客户端,用来申请anySDK服务,创建游戏,测试帐号等等。另一个就是anySDK的框架包,不同的引擎不一样,比如我们是unity4.6的那么下载的是libAnySDKForUnity_libstdc++.unitypackage

    以git上unity的例子为例,anySDK的初始化放在例子里的Init.cs里面,用到的几个参数说明一下。

    appKey,appSecret,privateKey这三个放在一起说,他们来自于使用anySDK客户端开通服务,创建完游戏后在配置管理页面可以看到的这三个。还有一个参数是oauthLoginServer 是发送到服务器端做验证的地址,这个服务端的验证是需要我们自己的游戏服务端程序开发的。由于我们这个项目前后端都做,我个人之前也做过javaweb开发,所以验证服务也由我个人来开发。

    同样可以去anySDK的git上下载那个simple_server的例子,里面有java验证服务端的例子,我是通过假设tomcat服务器实现的验证服务器。oauthLoginServer传入架设的验证服务器地址。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.xingfu.mzj.action.impl.AnySDKAction" %>
<%
	AnySDKAction login = new AnySDKAction();
	login.check(request, response);
%>

在jsp里调用相应action类的方法做登录验证,我这里取名叫check。(原谅我2年没做java了,只会基本的java web实现方式,专业的服务端程序应该会用struts等框架,总之原理是一样的目的就是验证服务端接到客户端登录请求,再去向any服务端转发请求而已)

至于check函数的具体内容get上下载下来的simple_server例子里面有,就不贴了,不过注意最后调用的一个叫sendToClient的一个函数,发送的json结构里面有一个ext字段,这个字段将来会作为msg回传给游戏客户端的

void Start()
		{


			AnySDKUser.getInstance () .setListener (this,"UserExternalCall");
		}

void UserExternalCall(string msg)
		{
			Debug.Log("UserExternalCall("+ msg+")");
			Dictionary<string,string> dic = AnySDKUtil.stringToDictionary (msg);
			int code = Convert.ToInt32(dic["code"]);
			string result = dic["msg"];
			switch(code)
			{
			case (int)UserActionResultCode.kInitSuccess://初始化SDK成功回调
				Debug.Log("初始化SDK成功回调");
				break;
			case (int)UserActionResultCode.kInitFail://初始化SDK失败回调
				Debug.Log("初始化SDK失败回调");
				break;
			case (int)UserActionResultCode.kLoginSuccess://登陆成功回调
				Debug.Log("登陆成功回调,result:" + result);
				string[] msgArray = result.Split(new char[]{','});
				string userId = msgArray[0];
				string accessToken = msgArray[1];
				Debug.Log("userId:" + userId + ",accessToken:" + accessToken);
				break;
				
		...

例如unity脚本里面的start函数里设置了登录回调函数为UserExternalCall,接下来的处理里面会把msg转换成一个数据字典,而这个result就是数据字典dic里面的msg,而这个msg也就是由验证服务端传过来的json里面的ext字段.用官方文档里面的原话就是

ext:默认为空,游戏服务器可以在ext域中存放游戏逻辑相关的数据(比如开发商服务器内部设定用户标识),这些数据会在游戏客户端获取到登录成功回调时附带的msg信息里完整的拿到,然后用来执行相应的游戏逻辑;

也就是这是个自己用来存储一些anySDK没有提供的数据会传给客户端的,是根据自己游戏的登录不同,可以自己去使用的一个扩展字段(说的通俗点,传你们游戏特有的需要的一些信息,没有可以不传,完全看游戏自身需求)

再测试登录的时候使用的帐号可以通过anySDK的客户端提供的开发者管理后台生成你们游戏的测试帐号,然后登录的时候就用这个账号,只要用户名密码正确,验证服务器地址正确,最后登录成功就会回调unity游戏客户端的UserExternalCall方法,会走到登录成功那个分支。这样一来,客户端对接验证服务端去any那里登录再返回客户端的这套流程就算ok了。接下来就是客户端自己的登录流程了

以上

    

© 著作权归作者所有

习惯了幻想
粉丝 6
博文 15
码字总数 7389
作品 0
朝阳
高级程序员
私信 提问
unity3d如何快速接入渠道SDK之Unity篇

首先我们讲一下,为什么要介绍这个插件? 是因为这个插件极大的简化了我对接渠道SDK的工作量,精力和时间,也避免了我不断的重复的做接入SDK工作这样没有成就感的无聊工作! 所以我就介绍一下...

tt0301
2014/08/05
26.1K
16
福利:unity3d一站式接入渠道SDK插件 abctools

unity3d游戏终于开发完了,到了要接入渠道SDK了(老板让我接入360,小米,当乐,91,50多家渠道SDK)我要疯了,为unity3d游戏接入渠道SDK是一件非常蛋痛的事情! 市面上多达100多家的渠道需要...

liruochu
2014/07/28
1K
0
福利:unity3d一站式接入渠道SDK插件 abctools

unity3d游戏终于开发完了,到了要接入渠道SDK了(老板让我接入360,小米,当乐,91,50多家渠道SDK)我要疯了,为unity3d游戏接入渠道SDK是一件非常蛋痛的事情! 市面上多达100多家的渠道需要...

liruochu
2014/07/26
314
17
Unity接SDK通用方法总结

第一篇博客,回顾接UnitySDK的坑 接SDK主要有两种方式,第三方SDK和手动接(我用的android studio) 首先接触到的SDK就是Facebook-Unity的SDK,主要就是facebook的后台配置:https://develop...

只会写BUGy
2018/08/20
0
0
Unity3dAds广告插件的使用(附Demo)

这次我们学习一个方便在unity内进行接入广告平台,就是unityAds,这个广告平台是视频广告,可以在游戏暂停的时候全屏显示。最重要的是在unity里面接入极为方便! 附上简洁的代码(底部附有D...

咖喱酱_zero
2016/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
18
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部