关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: android与Unity3D交互,fragment显示unity3d视图。 下面,我们来说说本博客的终端,Unity3D调用android的

关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客:

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.在Unity工程中,利用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("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发送消息,日后会发博客叙述。

android 引用非 android 工程,Unity3D调用android方法(非插件方式)相关推荐

  1. Unity3D调用android方法(非插件方式)

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

  2. unity无法调用android,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: 下面,我们来说说本博客的终端, ...

  3. unity3d调用android方法,Unity3D 调用Android原生方法2

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅Unity3D引擎技术交流QQ群:[119706192]本文链接地址:Unity3D 调用Android原生方法2 记一次Unity通过An ...

  4. cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法

    cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法 cocos2dx在Android studio运行 使用Andr ...

  5. Unity3D调用Android提供的接口

    需求:Android提供相关的接口,android只提供接口,没有相关的界面,android接口打包以jar包的形式供Unity3D调用 1.编写相关的android接口 在studio中新建工程,并 ...

  6. unity3d android aar,Android Stuido导出AAR 给Unity3D调用注意事项

    1. 导出 AAR过程需要注意,依赖的文件并没有打进去,所以要收到拷入到 Unity项目中,如下图中的 support包,是我项目中要用到的: 2.删除aar包中重复的 libs下的 jar文件和 j ...

  7. Unity3d调用Android版so库

    C源码封装Android版函数库 工具介绍 需要Android NDK工具包,下载地址为: https://developer.android.google.cn/ndk/downloads/inde ...

  8. android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)

    需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...

  9. android闹钟例子,自己软件中调用android系统闹钟

    [实例简介] 自己软件中调用android系统闹钟! 综合网上资料,得来 [实例截图] [核心代码] 54ba60f3-fa09-4e61-b3ab-c4fca16d07b2 └── CallSyst ...

最新文章

  1. 想成为优秀的管理者,不能不知道的决策方法
  2. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...
  3. Asp.net页面和Html页面之间的关系
  4. 【HDU - 1943】Ball bearings(几何问题)
  5. 重读经典:《Deep Residual Learning for Image Recognition》
  6. 别再抱怨 TensorFlow2.0 辣鸡了,会了是“真香”
  7. Qt加载osgearth时报错:0x0000xxx处未经处理的异常:0xC00005:写入位置***发生冲突
  8. xcode 把cocos2d-x 以源码的形式包含进自己的项目适合, 性能分析问题的错误
  9. python 3全栈开发-面向对象之绑定方法(classmethod与staticmethod的区别)、多态、封装的特性property...
  10. windows查看本机ip地址
  11. 苍井空详细介绍(婚后生活)
  12. 【3D游戏建模全流程教学】使用3dsmax与UE4制作世界末日地铁场景
  13. 厦门92坐标参数讨论
  14. mysql_连接故障 Too many open files in system
  15. 前度字符串转数组_java中的hashcode 前度刘郎
  16. 【Python 每日一技】根据任意分隔符分割字符串
  17. 2023版golang面试题100道(map)
  18. 常用逻辑用语知识点【初级和中阶辅导】
  19. 红米k40刷鸿蒙系统,红米K40开孔仅2.8mm,全球最小或命名为无感孔,到底有多极致...
  20. 使用Ngrok配置免费的外网域名

热门文章

  1. 精华阅读第6期|程序猿的世界,你不懂!
  2. Android Bundle类别
  3. SQL随机生成6位数字
  4. 关于grep,egrep正则表达式的常用用法
  5. 【转】关键字过滤算法
  6. FileSystemObject和Folders使用详细介绍
  7. 【讨论】从吉日的一段话说起+寻找WinForm架构的最佳实践
  8. 北大青鸟:比尔盖茨:我在微软的10大失误
  9. 判读一个对象不为空_ArrayList实现分析(一)——对象创建
  10. linux系统高级管理工具包,linux两大系统的包管理工具