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

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

时间: 2024-10-13 03:22:24

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

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

后台: public partial class Ajax_ShoppingCart : System.Web.UI.Page { bookdbDataContext bdc = Connect.bookdb(); protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { if(Request.Form["method"]!=null) { switch (Request.Form["me

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

#include <jni.h> #include <stdio.h> #include <stdlib.h> #include <jni.h> #include <android/log.h> #define LOG_TAG "System.out" //日志乱码时请将项目文件编码设置为UTF-8 /**debug级别日志:ANDROID_LOG_DEBUG:级别,LOG_TAG:标签,__VA_ARGS__:日志内容)**

[原]unity3d调用android webView

1.配置dialog xml文件: <resources>    <style name="dialogStyleWindow" parent="@android:style/Theme.Dialog">         <item name="android:windowNoTitle">true</item>          <item name="android:window

调用android方法,出现版本太低解决方法

原因如下图所示: 调用需要API级别11,当前是8. 解决方法如下图所示: 点击

Unity调用Android方法

步骤 废话不多说,直接来步骤吧1.创建工程,弄大概像这样一个界面2.在unity中写好代码,像这样,记得给界面绑定好事件啥的 using UnityEngine; using UnityEngine.UI; public class TestScripts : MonoBehaviour { public InputField m_InputFiled; public Text m_Label; public void OnClickButton1() { AndroidJavaClass jc

Android实现apk插件方式换肤

换肤思路: 1.什么时候换肤? xml加载前换肤,如果xml加载后换肤,用户将会看见换肤之前的色彩,用户体验不好. 2.皮肤是什么? 皮肤就是apk,是一个资源包,包含了颜色.图片等. 3.什么样的控件应该进行换肤? 包含背景图片的控件,例如textView文字颜色. 4.皮肤与已安装的资源如何匹配? 资源名字匹配 步骤: 1.xml加载前换肤,意味着需要将所需要换肤的控件收集起来.因此要监听xml加载的过程. 1 public class BaseActivity extends Activi

Unity调用Android配置方法

方法一:发布eclipse android工程(如图勾选),如同IOS发布xcode一样,在eclipse中编写调用 方法二: 操作过程配置要点: 1.新建Android工程,注意包路径比如我的是com.zx,其他步骤直接下一步完成 2.勾选Mark this project as a library 3.新建Android工程编写相关接口方法后,复制bin文件(只需要zx.jar).res资源包.AndroidMainfest.xml配置文件 4.复制到Unity工程中Plugins/Andr

struts中调用servlet的两种方法——IcC方式和非IoC方式的代码demo

1 package com.java1234.action;//所在的包 2 3 import java.sql.Connection;//数据库连接的类 4 import java.util.ArrayList;//ArrayList和List是在private List<DataDic> dataDicList=new 5 6 ArrayList<DataDic>();中用到 7 import java.util.List;//ArrayList和List是在private L

YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把查询结果的 HTML 代码呈现到 Razor 视图中,考虑到灵活性,需要能在任意 Razor 视图中调用该方法,这样任意 Razor 页面都能以统一的方式方便地共享该页面部件的 HTML 内容,这对于代码的重用性和可维护性都是非常有必要的. 为实现上述要求,本文介绍如下可供选择的三种方式.   1.