问题:如何在unity3d的游戏中实现分享功能,如图

思路:

1、分享功能的实现方式有多种,较方便快捷的一种是直接调用android的API来调出系统的分享界面

2、unity3d里面调用android的API需要为此编写一个android的插件

3、在插件(android的jar包)里面调用Intent类来实现Activity间的消息传递,换出系统的分享控制台

代码:

Android插件代码

 package com.XXX.XXX;

 import android.content.Intent;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity; public class MainActivity extends UnityPlayerActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); } public void onPress(String msg)
{
Intent shareInt = new Intent(Intent.ACTION_SEND);
shareInt.setType("text/plain");
shareInt.putExtra(Intent.EXTRA_SUBJECT, "选择分享方式");
shareInt.putExtra(Intent.EXTRA_TEXT, msg); // 要分享的内容
shareInt.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareInt, getTitle()));
}
}

unity3d调用代码

     void OnGUI()
{
if (GUILayout.Button("Send WeChat", GUILayout.Height()))
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("onPress", new object[] {"这游戏真好玩,快来下载吧!"});
}
}

注意:

1、编写插件需要用到eclipse ADT,可以在Android Develop官网下载Android SDK,直接使用里面的eclipse就OK

2、创建一个Android工程,将bundle标示设置为与unity3d一致,比如都叫com.xxx.yyy

3、导入com.unity.player.UnityPlayerActivity包(路径在“Unity安装目录\Editor\Data\PlaybackEngines\androidplayer\bin”下)修改MainActivity类的继承

4、将整个jar包导出,存放到Assets/Plugins/Android目录下,并将jar包中的libs、res、AndroidManifest.xml也放入同级目录下

5、在unity3d中通过jo.Call<返回类型>/jo.Call来调用Android插件接口,传入对应的参数

6、该行为不能在unity编辑器中测试,因为需要调用Android API

最新文章

  1. Ubuntu16.04安装Screenlets
  2. 如何让textarea不可拖拽
  3. Cannot override the final method from SherlockFragmentActivity
  4. maven 跳过测试 打包 及上传命令
  5. block 在ARC和非ARC下的不同含义
  6. 初探Asp.net5
  7. centos ssh配置使用
  8. SQL日志文件的作用
  9. Docker系列
  10. 【转】Eclipse中设置ButterKnife进行注解式开发步骤 -- 不错
  11. Digital Root - SGU 118(高精度运算)
  12. 关于get和set访问器以及属性和字段变量的区别问题
  13. Remove Invalid Parentheses 解答
  14. java中log4j的使用体验
  15. git conflict
  16. python 接口自动化测试(四)
  17. java web 项目打包(war 包)并部署
  18. Jquery Mobile 让错误提示可在后台控制显示内容
  19. iReport 5.6.0 安装包下载&amp;安装
  20. css3选择

热门文章

  1. hive-通过Java API操作
  2. Myeclipse8.5注册码
  3. Android(java)学习笔记72:线程的状态转换图以及常见执行情况
  4. Android(java)学习笔记96:如何改变spinner系统自带的字体和颜色
  5. SQL Server2008附加数据库失败
  6. Express 4.x Node.js的Web框架
  7. Ext.Slider的试用小记
  8. 跟我一起学习VIM - The Life Changing Editor
  9. 【TOMCAT】Tomcat gzip压缩传输数据
  10. Android实现贪吃蛇游戏