关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客。假设你对Unity3Dproject增加到androidproject的过程不熟悉。也请先看完以下这篇博客:

android与Unity3D交互,fragment显示unity3d视图。

以下,我们来说说本博客的终端,Unity3D调用android的方法:

1.首先,在网络上大家能够看到非常多把android project打包,然后以插件的方式,放入Unity3D工程中来调用的方式,这样的方式,我不做评论,可是非常麻烦,所以我也没有进行尝试。大家有兴趣能够到网络上搜索一下看看。

2.假设讲Unity3D的project导出为android project然后进行再次开发的过程中。须要Unity3D调用android的方法,这个时候,再使用1中的方法。显然是不合适的。

那么我们要怎么样来做呢?分为以下几部分:

1.在初始化UnityPlayer的Activity中加入方法,例如以下:

/**
* 測试Unity调用Android的方法
*/
public void testMethod(String param){
System.out.println("參数为:"+param);
}

对于提供的方法,不能够进行UI操作,由于Unity3D对于android的UI线程来说,仅仅是个子线程。假设要进行UI操作,能够使用Handler发消息。

2.在Unityproject中。利用c#文件来书写,Unity调用的代码:

public static void ActivateShareImage(string content)
{
if (Application.platform == RuntimePlatform.IPhonePlayer)
{
_PressButton3(content);
}
else if (Application.platform == RuntimePlatform.Android)
{
UISystem.Console("test method!"); AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("testMethod", "unity");
}
else
{ }
}

3,假设你已经有android项目了,那么就把新修改的Unity3D的项目导出为android project的,把新导出的project中的assets的目录,替换掉之前老的project中的,这样做的目的是更换Unity的修改,假设修改了其它的东西,也是这样更换的。可是假设你的assets目录下还有其它资源。请保留。

假设。你没有android项目,那么就把Unity3D的项目导出为android的project项目使用。

4.对于AndroidJavaClass这个类。以及它提供的方法,大家能够參考以下的站点:

AndroidJavaClass 安卓Java类

这样,就能够完毕调用了。根本就不须要使用插件。关于android向Unity3D发送消息,日后会发博客叙述。

最新文章

  1. jQuery 简介和安装
  2. jquery时间倒计时
  3. json格式的转换为json字符串函数
  4. mysql:on duplicate key update与replace into
  5. PHP设计模式之策略模式
  6. ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法
  7. Ehcache(2.9.x) - Configuration Guide, Configuring Storage Tiers
  8. BestCoder Round #75 1003 - King&#39;s Order
  9. memory引擎的索引失效一例
  10. 漫画研发之十二:该听谁的? 部门经理 or 项目经理
  11. bash脚本退出代码解释
  12. linux环境变量的配置
  13. C#中Equals和= =(等于号)的比较)
  14. Cronolog切割tomcat日志
  15. 使用::befor和::after伪元素在网站中添加图标
  16. Delphi的idhttp报IOHandler value is not valid错误的原因[转]
  17. 恋爱Linux(Fedora20)2——安装Java运行环境(JDK)
  18. SQL将时间格式化为year-month-day
  19. Java终止循环体
  20. 【node.js】readline (逐行读取)

热门文章

  1. Android_深入解析AsyncTask
  2. ibatis.net:第一天,什么是 mybatis.net ?
  3. SharePoint Online 创建图片库
  4. Android手机提示&ldquo;未安装应用程序&rdquo;
  5. Gallery和自定义Adapter配合使用,实现图片预览
  6. mysql group by 报错异常解决
  7. 使用模拟对象(Mock Object)技术进行测试驱动开发
  8. 数据库分库分表中间件:Mycat;分布式数据库;mysql的分布式事务
  9. idea自动生成serialVersionUID , serialVersionUID的作用
  10. 脚本不得关闭非脚本打开的窗口。Scripts may close only the windows that were opened by it