SDK学院--易接网游SDK中间件接入使用说明-Unity3D游戏接口

 2.3.1 开发前准备

 2.3.2 接口说明

  2.3.2.1 SDK初始化接口(必选接口)

  2.3.2.2 用户登陆登出接口(必选接口)

  2.3.2.3 非定额计费接口

  2.3.2.4 定额计费接口(必选接口)

  2.3.2.5 设置角色基本数据(必选接口)

  2.3.2.6 特殊接口(非必选接口)

  2.3.2.7 回调消息定义

 

2.3 Unity3D游戏接口

2.3.1开发前准备

1. 将SDK\game\u3d文件Copy到Assets\Plugins\Android\中;


2. AndroidManifest的文件:

    (1)在游戏AndroidManifest.xml文件的application中添加由易接提供如下代码,可参考“网游\sdk\ AndroidManifest.xml "

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<activity
     android:name= "com.snowfish.a.a.s.PA"
     android:configChanges= "keyboardHidden|orientation"
     android:theme= "@android:style/Theme.Translucent.NoTitleBar"
     android:windowSoftInputMode= "stateHidden" >
</activity>
<service
     android:name= "com.snowfish.a.a.s.ABGSvc"
     android:enabled= "true"
     android:process= "com.snowfish.a.a.bg" >
     <intent-filter>
         <action android:name= "com.snowfish.a.a.s.ABGSvc" />
         <category android:name= "android.intent.category.DEFAULT" />
     </intent-filter>
</service>
<meta-data
     android:name= "com.snowfish.customer"
     android:value= "SNOWFISH" >
</meta-data>
<meta-data
     android:name= "com.snowfish.channel"
     android:value= "SNOWFISH" >
</meta-data>
<meta-data
     android:name= "com.snowfish.sdk.version"
     android:value= "2" >
</meta-data>
<meta-data
     android:name= "com.snowfish.appid"
     android:value= "KEY" >
</meta-data>
<meta-data
     android:name= "com.snowfish.channelid"
     android:value= "{4ff036a1-3254eafe}" >
</meta-data>

    标红处的KEY值需要替换成在易接用户中心申请获取的APPID,格式如下:{12345678-12345678}。

    此外,以下activity由Unity3d提供,作为入口activity,请参考demo。具体使用请根据游戏实际情况;

1
2
3
com.unity3d.player.UnityPlayerProxyActivity
com.unity3d.player.UnityPlayerActivity
com.unity3d.player.UnityPlayerNativeActivity

    (2)修改Application

        1)若无自定义Applicatiion,则修改AndroidManifest.xml的Application如下:

1
<application android:name= "com.snowfish.cn.ganga.helper.SFOnlineApplication" />

        2)若开发者自定义的Application。则自定义Application需要继承com.snowfish.cn.ganga.helper.SFOnlineApplication ,

1
AndroidManifest.xml修改如下:<application android:name= "自定义Application" />

    (3)在游戏的AndroidManifest.xml中添加use-permision如下,可参考“网游\sdk\ AndroidManifest.xml "

1
2
3
4
5
6
7
8
9
10
11
<uses-permission android:name= "android.permission.INTERNET" />
<uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name= "android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name= "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name= "android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name= "android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name= "android.permission.READ_PHONE_STATE" />
<uses-permission android:name= "android.permission.GET_TASKS" />
<uses-permission android:name= "android.permission.WAKE_LOCK" />
<uses-permission android:name= "android.permission.CHANGE_NETWORK_STATE" />

3. 添加启动闪屏Activitiy和Unity3d游戏入口Activity

    (1)Eclipse中建立一个与unity3d工程同包名工程,引入gangasf.jar库,引入gangaonlineyijie.jar和gangaonlinehelper.jar库;

    (2)新建一个闪屏activity例如SplashActivity,继承com.snowfish.cn.ganga.helper.SFOnlineSplashActivity;(同2.2.1.6部分);

    (3)新建一个游戏入口activity例如MainActivity继承Unity3D的UnityPlayerActivity类;

    (4)将工程properties的android选项中Is Library选中,如下图

    (5)将工程properties的android选项中Is Library选中,如下图将工程bin目录下生成的jar拷贝至unity工程 Assets\Plugins\Android\bin文件夹下;

    (6)将Assets\Plugins\Android\AndroidManifest.xml中的主入口Activity配置为SplashActivity。例如:

1
2
3
4
5
6
<activityandroid:name= ".SplashActivity" >
<intent-filter>
<actionandroid:name= "android.intent.action.MAIN" />
易接网游 SDK 中间件接入标准流程
<categoryandroid:name= "android.intent.category.LAUNCHER" />
</intent-filter>

    (7)在Assets\Plugins\Android\AndroidManifest.xml中声明游戏的入口MainActivity,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<activity
     android:name= ".MainActivity"
     android:configChanges="orientation|navigation|screenSize
     |keyboard|keyboardHidden"
     android:label= "@string/app_name"
     android:screenOrientation= "portrait"
     android:theme= "@android:style/Theme.NoTitleBar.Fullscreen" >
     <meta-data
         android:name= "unityplayer.UnityActivity"
         android:value= "true" />
     <meta-data
         android:name= "unityplayer.ForwardNativeEventsToDalvik"
         android:value= "true" >
     </meta-data>
</activity>

    (8) 游戏的入口Activity(例如上述MainActivity)请添加到Assets\Plugins\Android\res\values\strings.xml中的zy_class_name字符串中,使得闪屏完成后即启动游戏,例如:

1
2
3
<string
     name= "zy_class_name" > com.yijie.cn.sdk.demo.MainActivity
</string>

2.3.2接口说明

2.3.2.1 SDK初始化接口(必选接口)

本节方法在游戏入口Activity中调用,例如上述MainActivity。

1. SFOnlineHelper.onCreate(Activity arg0)

该方法在游戏Activity中的onCreate中调用;调用用例

1
2
3
4
5
@Override
protected void onCreate(Bundle savedInstanceState) {
     super .onCreate(savedInstanceState);
     SFOnlineHelper.onCreate( this );
}

2. SFOnlineHelper.onStop(Activity arg0)

该方法在游戏Activity中的onStop中调用,调用用例:

1
2
3
4
5
@Override
protected void onStop() {
     super .onStop();
     SFOnlineHelper.onStop( this );
}

3. SFOnlineHelper.onDestroy(Activity arg0);

该方法在游戏Activity中的onStop中调用,调用用例:

1
2
3
4
5
@Override
protected void onDestroy() {
     super .onDestroy();
     SFOnlineHelper.onDestroy( this );
}

4. SFOnlineHelper.onResume(Activity arg0);

该方法在游戏Activity中的onResume中调用,如果出现Unity3D界面刷新异常可以增加延迟调用,调用用例:

1
2
3
4
5
6
7
8
9
@Override
protected void onResume() {
     super .onResume();
     handel.postDelayed( new Runnable() {
         public void run() {
             SFOnlineHelper.onResume(MainActivity. this );
         }
     },  1000 );
}

5. SFOnlineHelper.onPause(Activity arg0);

该方法在游戏Activity中的onPause中调用,调用用例:

1
2
3
4
5
@Override
protected void onPause() {
     super .onPause();
     SFOnlineHelper.onPause( this );
}

6. SFOnlineHelper.onRestart(Activity arg0);

该方法在游戏Activity中的onRestart中调用,调用用例:

1
2
3
4
5
@Override
protected void onRestart() {
     super .onRestart();
     SFOnlineHelper.onRestart( this );
}
2.3.2.2用户登陆登出接口(必选接口)

以下小节所有接口,请在Unity3D脚本中使用。

1.[DllImport("gangaOnlineUnityHelper")]

1
privatestatic extern  void login(IntPtr context, string customParams);

该方法用于登录,调用用例:

1
login(curActivity.GetRawObject(), "Login" );

2.[DllImport("gangaOnlineUnityHelper")]

1
private static extern  void logout(IntPtr context, string customParams);

该方法用于登出,调用用例:

1
logout(curActivity.GetRawObject(), "LoginOut" );

3.[DllImport("gangaOnlineUnityHelper")]

1
2
private static extern  void exit(IntPtr context, string gameObject,
string listener);

该方法用于系统全局退出,listener为退出监听函数,调用用例:

1
exit(curActivity.GetRawObject(), "Main Camera" , "ExitResult" );

如下方法在游戏主Activity中调用。

4.[DllImport("gangaOnlineUnityHelper")]

1
private static extern  void onCreate(IntPtr context,string gameObject, string listener);

该接口方法用于设置登陆监听

参数描述:

 参数名称

 类型

 注释

 context

 IntPtr

 currentActivity

 gameObject

 string

游 戏场景中的对象,SDK内部完成计费逻辑后,并把计费结     果通过Unity内部                 API(com.unity3d.player.UnityPlayer.UnitySendMessage(String gameObject,StringruntimeScriptMethod,Stringargs)通知到Unity,故游戏开发者需要指定一个游戏对 象和该对象的运行脚本,用于侦听SDK的计费结果

 listener

 string

隶属于gameObject对象的运行时脚本的方法名称,该方法会在收到通知后触发

调用用例

1
setLoginListener (curActivity.GetRawObject(), "Main Camera" "LoginResult" );
2.3.2.3非定额计费接口(必选接口)

1.[DllImport("gangaOnlineUnityHelper")]

1
2
3
private static extern  void charge(IntPtr context, string gameObject, string
itemName, intunitPrice,  int count, string callBackInfo, 
string callBackUrl, string payResultListener);(<span style= "color: #ff0000;" >必选接口</span>)

该接口用于用户触发计费进行付费行为的入口函数。合作伙伴可以在需要计费的地方调用此接口进行计费。该接口用于非定额计费。

参数描述:

 参数名称

 类型

 注释

 context

 IntPtr

 上下文Activity

 itemName

 string

 虚拟货币名称

 unitPrice

 int

 游戏道具单位价格,单位为人民币分

 count

 int

 用户选择购买道具界面的默认道具数量.(count*unitPrice)

 callBackInfo

 string

由游戏开发者定义传入的字符串,会与支付结果一同发送给游戏服务器,游戏服务器可通过该字段判断交易的详细内容(金额角色等)

 callBackUrl

 string

将支付结果通知给游戏服务器时的通知地址url,交易结束后,系统会向该url发送http请求,通知交易的结果金额callbackInfo等信息

 gameObject

 string

游 戏场景中的对象,SDK内部完成计费逻辑后,并把计费结果通过Unity内部 API(com.unity3d.player.UnityPlayer.UnitySendMessage(String gameObject,StringruntimeScriptMethod,Stringargs)通知到Unity,故游戏开发者需要指定一个游戏对 象和该对象的运行脚本,用于侦听SDK的计费结果。

 payResultListener

 string

隶属于gameObject对象的运行时脚本的方法名称,该方法会在收到通知后触发

 调用用例:

1
2
charge(curActivity.GetRawObject(),  "Main Camera" , "200金币" , 200 1 , "购买金币" ,
"http://192.168.0.224:8980/omsdk-cp/user/paylog /sync" , "PayResult" );
2.3.2.4定额计费接口(必选接口

[DllImport("gangaOnlineUnityHelper")]

1
2
3
private static extern  void pay(IntPtr context, string gameObject,
intunitPrice, string unitName,  int count, string callBackInfo, string callBackUrl,
string payResultListener);

该接口用于定额支付的接口函数。合作伙伴在需要使用定额支付的时候使用该接口。

参数描述:

 参数名称

 类型

 注释

 context

 IntPtr

 上下文Activity

 unitName

 string

 虚拟货币名称

 unitPrice

 int

 当前1个虚拟货币需要支付金额,单位为人民币分

 count

 int

 用户选择购买道具界面的默认道具数量。(总价 count*unitPrice)

 callBackInfo

 string

由游戏开发者定义传入的字符串,会与支付结果一同发送给游戏服务器,游戏服务器可通过该字段判断交易的详细内容(金额角色等)

 callBackUrl

 string

将支付结果通知给游戏服务器时的通知地址url,交易结束后,系统会向该url发送http请求,通知交易的结果金额callbackInfo等信息

 gameObject

 string

游 戏场景中的对象,SDK内部完成计费逻辑后,并把计费结果通过Unity内部 API(com.unity3d.player.UnityPlayer.UnitySendMessage(String gameObject,StringruntimeScriptMethod,Stringargs)通知到Unity,故游戏开发者需要指定一个游戏对 象和该对象的运行脚本,用于侦听SDK的计费结果。

 payResultListener

 string

隶属于gameObject对象的运行时脚本的方法名称,该方法会在收到通知后触发

 

调用用例:

1
2
pay(curActivity.GetRawObject(), "Main Camera" , 100 , "100金币" , 1 , "购买金币" ,
"http://192.168.0.224:8980/omsdk-cp/user /paylog/sync" , "PayResult" ); 
2.3.2.5设置角色基本数据(必选接口

[DllImport("gangaOnlineUnityHelper")]

1
2
3
private static extern voidsetRoleData(IntPtr context, string roleId, 
stringroleName, string roleLevel,
string zoneId, string zoneName);

部分渠道如UC渠道,要对游戏人物数据进行统计,而且为接入规范,调用时间:在游戏角色登录成功后

参数描述:

 参数名称

 类型

 注释

 context

 IntPtr

 上下文Activity

 roleId

 string

 角色唯一标识

 roleName

 string

 角色名

 roleLevel

 string

 角色等级

 zoneId

 string

 区域唯一标识

 

 zoneName

 string

 区域名称

2.3.2.6特殊接口(非必选接口)

[DllImport("gangaOnlineUnityHelper")]

1
private static extern Boolean isMusicEnabled (IntPtr context);

该方法用于判断SDK是否需要打开游戏声音,目前只有移动基地需要此接口,游戏开发者需要根据该返回值,设定游戏背景音乐是否开启,调用用例:

1
Boolean isOpen = isMusicEnabled(curActivity.GetRawObject ());
2.3.2.7回调消息定义

回调采用Json方式传递参数,定义如下:

1. 登陆回调

回调返回的Json键值定义对应表:

Key 值类型 注释
"reslut" string 登出
"customParams" string 自定义参数
"userinfo" SFJSONOBject 登录账户信息

键值定义对应表2.3.2.7.1

 

键值"result",Value值定义如下表:

 名称

 值

 注释

 LoginResult.LOGOUT

 "0"

 登出

 LoginResult.LOGIN_SUCCESS

 "1"

 登入成功

 LoginResult.LOGIN_FAILED

 "2"

 登入失败

键值"result"值定义对应表2.3.2.7.2

 

键值" userinfo ",Value值定义如下表:

参数 键值 类型 注释
id "id" long 易接内部userid,该值可能为0,请不要以此参数作为判定。
channelid "channelid" string 易接平台标示的渠道SDK ID。
ChannelUserId "channeluserid" string 渠道SDK标示的用户ID。
UserName "username"   渠道SDK的用户名称。
Token "token" string 渠道SDK登录完成后的Session ID。特别提醒:部分渠道此参数会包含特殊值如`+`,空格之类的,如直接使用URL参数传输到游戏服务器请求校验,请使用URLEncode编码。
ProductCode "productcode" string 易接平台创建的游戏ID,appid键值" userinfo "值定义对应表2.3.2.7.2

键值" userinfo "值定义对应表2.3.2.7.2

调用用例:

详细代码请参考Unity3DDemo。

2.支付回调:

 名称

 值

 注释

 PayResult. PAY_SUCCESS

 "0"

 支付成功

 PayResult. PAY_FAILURE

 "1"

 支付失败

 PayResult. PAY_ORDER_NO

 "2"

 返回支付订单号

使用方法参见unity3DDemo。

3.exit回调

 名称

 值

 注释

 PayResult.SDKEXIT

 "0"

 Exit

 PayResult.SDKEXIT_NO_PROVIDE

 "1"

 SDKEXIT_NO_PROVIDE

使用方法参见unity3DDemo。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity接入微信小游戏登录SDK需要进行以下步骤: 1. 下载微信小游戏登录SDK:首先,从微信开放平台下载微信小游戏登录SDK的Unity插件,该插件包含了与微信小游戏服务器通信所需的脚本和配置文件。 2. 导入SDK插件:打开Unity项目,在Assets菜单中选择“Import Package” -> “Custom Package”,选择刚下载的微信小游戏登录SDK插件进行导入。 3. 配置游戏参数:在Unity编辑器中,在“Project”视图下找到WXEntryMenu,并打开进行配置。在配置中,要填写自己的微信小游戏AppID和AppSecret等参数。 4. 创建登录按钮:在Unity场景中,创建一个按钮对象,并添加一个脚本用于处理微信小游戏登录逻辑。在该脚本的代码中,调用微信小游戏登录SDK接口,实现登录功能。 5. 处理登录回调:微信小游戏登录SDK提供了登录结果回调函数,开发者需要在自己的脚本中进行处理。根据回调结果,可以获取到用户的openid、unionid等信息,进一步进行后续操作。 6. 测试登录功能:在Unity编辑器中,点击运行按钮,启动游戏。在游戏中点击登录按钮,会调起微信小游戏客户端进行登录。登录成功后,可以获取到用户的登录信息,并进行相应的游戏逻辑处理。 以上就是Unity接入微信小游戏登录SDK的基本步骤。开发者按照这些步骤进行操作,即可实现微信小游戏的登录功能,并在游戏使用微信登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值