首先android项目不继承Activity继承自UnityPlayerActivity,把分享的都封装成一个方法,然后让unity去调用,下面有把android项目打成jar包的方法,在unity项目中建Plugins然后建Andriod,Android文件夹下放打成的jar包,libs,res,AndroidManifest.xml.首先说下新浪微博的分享,新浪微博官方说调用新浪分享必须在主线程中,unity调用android中方法的时候都是新开启一个线程所以android中就这么处理
public void sharedSinaPicture(String path, Activity currentActivity) { currentActivity.runOnUiThread(new Runnable() { public void run() { try { } catch (WeiboShareException e) { e.printStackTrace(); Toast.makeText(MainActivity.this, e.getMessage(), 1).show(); } } }); 其中currentActivity就是unity中传过来的,告诉android中主线程更新Ui. unity中是这么写的 if(GUILayout.Button("新浪分享文字加图片(图片是本地的)",GUILayout.Width(300),GUILayout.Height(100))) { using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using( AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity")) { jo.Call("sharedSinaPicture","/sdcard/pic.jpg","新浪分享文字加图片",jo); } } }
unity中设置PerPlatform Settings中
android的包名 版本 最小api级别都要一致.
还有个问题是android的ID到unity重新编译了。
在android里面findbyid
int id = R.xxx.yyy不要这么写了,写成int id = getResoutces().getIdentifier("xxx","yyy",“R文件的包名”);
说下微信的分享,微信是最让人头疼的,开始的时候怎么弄都不弹出界面,后来发现是因为签名的原因,不能用android打包的签名,用unity打包后的签名,而且这个签名每个机器都是不一样的,所以做的时候要注意
现在微信 新浪 人人网 腾讯微博分享功能均已实现,微信 新浪经过测试,人人网和腾讯微博现在只是我自己测试了下,好使.有需要的朋友们留言吧,代码不便上传