关于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发送消息,日后会发博客叙述。

Unity3D调用android方法(非插件方式)的更多相关文章

  1. Unity3D 调用Android与IOS的剪贴板

    Unity3D剪贴板 最近遇到一个需要调用Android与IOS设备本身剪贴板的需求,就是在Unity中,要将文本复制到设备本身的剪贴板中,然后在其他应用程序中都能粘贴. 最开始在网上查到的方式是使用 ...

  2. 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

    调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

  3. Unity调用Android的两个方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  4. Unity调用Android的两种方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  5. [Unity3D]调用Android接口

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

  6. JNI学习2:android 调用C语言方法与C语言调用android方法

    #include <jni.h> #include <stdio.h> #include <stdlib.h> #include <jni.h> #in ...

  7. [原] unity3d调用android版 人人sdk

    开发过程 遇到天坑:纯android工程没问题,集成到unity3d中 就老提示 没登陆 .最后跟到底 发现是Util.java 中 openUrl 函数出的bug.unity3d 中调android ...

  8. MyBatis逆向工程的使用(非插件方式)

    一.概述 MyBatis是目前流行的优秀持久层框架,其逆向工程更是大大缩减了开发时间.所谓逆向工程,指的是mybatis根据数据库设计好的表,自动生成对应model.mapper及mapper.xml ...

  9. webform中 ajax调用后台方法(非webservice)

    方法一:通过创建一个没有内容的窗体 后台: public partial class Ajax_ShoppingCart : System.Web.UI.Page { bookdbDataContex ...

随机推荐

  1. cocos2d-x 输出debug信息

    cocos2d-x 输出debug信息   在Classes目录下添加文件AppDef.h #ifndef _APP_DEF_H_#define _APP_DEF_H_ #include <an ...

  2. Java 单例模式的常见应用场景

    单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此 ...

  3. ArcGIS Server 10 for java 注册SOE出现的问题

    一个SOE 需要register,但是报错 Manage Extensions Refresh Unable to register extension. com.esri.arcgis.intero ...

  4. 使用C++/libCurl/Jsoncpp读取arcgis wmts 服务(restful模式)

    前言: 最近工作需要将arcgis的wmts服务接入我们的3DGis系统平台,要求用户只输入一个rest模式的wmts服务地址,系统即可自动获取并解析其元数据信息,生成wmts图层,并渲染显示.经过多 ...

  5. AS 功能 设置 SDK AVD 简介 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. JSTL fn:contains()函数

    fn:contains() 函数判断一个输入字符串是否包含一个指定的子串. 语法 使用 fn:contains() 函数具有以下语法: boolean contains(java.lang.Strin ...

  7. python os.path模块常用方法详解 ZZ

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法.更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.ht ...

  8. Oracle中rownum用法警示

    今天调试代码,发现分页查询时使用Oracle中rownum的between......and用法的bug,特此总结: 参考资料:http://blog.csdn.net/lg312200538/art ...

  9. python3 IEDriver抓取时报数据

    最近做了测试抓取XX时报的数据,由于需要事先登录,并且有验证码,关于验证码解决有两个途径:一是利用打码平台,其原理是把验证码的图片上传发送给打码平台, 然后返回其验证码.二就是自己研究验证码技术问题. ...

  10. tesnorflow实现N个epoch训练数据读取的办法

    https://blog.csdn.net/lujiandong1/article/details/53991373 方式一:不显示设置读取N个epoch的数据,而是使用循环,每次从训练的文件中随机读 ...