赞
踩
参考文档:
https://blog.csdn.net/yang8456211/article/details/51356193
主要原理
1)unity里面调用android项目:
test.cs脚本
AndroidJavaClass jc;
AndroidJavaObject jo;
public void Awake() {
jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
public void login() {
t1.text = "login call";
jo.Call("login");
t1.text = " login end ";
}
2)android项目配置:
1.新建一个安卓项目,或者做一个untiy的demo,导出安卓项目
demo的bundle名字和sdk渠道提供的、真正游戏的一致,
2.根据sdk文档,设置好sdk安卓项目的关联,这个接入的sdk文档一般都有
设置library,有时候会出现X号,
是1)因为设置的sdk安卓项目路径有中文,无法识别,丢在demo的同级目录下面。2)然后demo有问题,不是一个正规的安卓项目
仔细看文档,把xml什么的都配置好
3.创建一个WTFSDKActivity.java脚本,必须集成UnityPlayerActivity。在里面根据sdk文档,把对应的东西都写好。
4.导出jar,只勾选新创建的这个java文件就可以了
5.将新创建的jar文件丢入untiy项目的plugins的bin文件夹下面。然后把sdk安卓项目里面的libs、assets、src全部拷贝过来,res根据Androidmainfest.xml里面的配置来拷贝,没有调用就不需要了。
Androidmainfest.xml根据计入sdk文档要求,配置好,游戏基本就ok了
3)android项目调用untiy里面的代码
UnityPlayer.UnitySendMessage("AndroidGo", "LoginCallback", result);
AndroidGo是一个GameObject物体,丢在项目的第一个场景里面,全部不销毁。
LoginCallback是物体上面的函数名字,result是参数。
5)测试bug
1.打包后,横竖屏幕切换卡死?
AndroidManifest.xml文件添加
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
修改主Activity的configChanges,screenOrientation和游戏设置一样。
<activity android:name="com.yiyou.ysfb.WTFSDKActivity"
android:configChanges ="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
android:screenOrientation="landscape"
androi
d:launchMode="singleTask">
2.测试后发现传送数据到sdk一直卡死?
原因:
String[] msgArray = msg.split("\\|");
3)private const char SPLITCHAR = "|";
StringBuilder sb = new StringBuilder ();
sb.Append(id +SPLITCHAR);
发现拼接字符串时候 “|”为25,于是改为
private const string SPLITCHAR = "|";
4)注意做入安卓sdk的外部代码,全部用try catch包好,多加日志,以免重复打包浪费时间
5)询问渠道,sdk的相关代码是否都需要放在主线程里面?刚开始照着文档接,最后要加这个,半夜又加班! ╮(╯﹏╰)╭
this.runOnUiThread(new Runnable() {
@Override
public void run() {
}});
6).有的界面,例如退出界面,游戏自己做了,询问渠道使用他们的还是自己的,尽量都用渠道的,除非boss要求用自己的。因为渠道总是希望用他们的东西。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。