1. 程式人生 > >Unity3D呼叫android方法(非外掛方式)

Unity3D呼叫android方法(非外掛方式)

關於Unity3D工程與android工程的轉換與合併,請參考我的另外一篇部落格,如果你對Unity3D工程加入到android工程的過程不熟悉,也請先看完下面這篇部落格:

下面,我們來說說本部落格的終端,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<AndroidJavaObject>("currentActivity");
            jo.Call("testMethod", "unity");
        }
        else
        { 
        
        }
    }
3,如果你已經有android專案了,那麼就把新修改的Unity3D的專案匯出為android project的,把新匯出的project中的assets的資料夾,替換掉之前老的project中的,這樣做的目的是更換Unity的改動,如果改動了其他的東西,也是這樣更換的,但是如果你的assets資料夾下還有其他資源,請保留。

如果,你沒有android專案,那麼就把Unity3D的專案匯出為android的project專案使用。

4.對於AndroidJavaClass這個類,以及它提供的方法,大家可以參考下面的網站:

這樣,就可以完成呼叫了,根本就不需要使用外掛。關於android向Unity3D傳送訊息,日後會發部落格敘述。

相關推薦

Unity3D呼叫android方法外掛方式

關於Unity3D工程與android工程的轉換與合併,請參考我的另外一篇部落格,如果你對Unity3D工程加入到android工程的過程不熟悉,也請先看完下面這篇部落格: 下面,我們來說說本部落格的終端,Unity3D呼叫android的方法: 1.首先,在網路上大家可

springmvc2 一個控制器寫多個方法註解方式

<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

關於物件深拷貝的一個方法Cloneable方式

背景:       一個很值得細品的問題:Java的深拷貝和淺拷貝。       要實現深拷貝的一個可行方法是讓物件實現Cloneable介面,然後重寫Object的clone()方法。改方案在網上有很多的教程。       這篇部落格的目的是為了記錄我找到的一個另外的方法

Unity3D調用android方法插件方式

pri hone hand 沒有 run project ets color androi 關於Unity3Dproject與androidproject的轉換與合並,請參考我的另外一篇博客。假設你對Unity3Dproject增加到androidproject的過

呼叫Action中的自定義方法4種方式

Action中的execute()方法是預設方法,在執行時被自動呼叫。但也允許在Action中自定義方法。可以在Action中自定義多個方法,分別處理不同的邏輯。當Action 中使用了自定義方法,該Action 就需要特定的配置,一般有四種呼叫方式: (1)使

利用WPF建立自己的3d gis軟體axhost方式SDK自帶部分面板的呼叫

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

Android AIDL bindService後不能呼叫onServiceConnected方法一種情況

"font-size:18px;">import android.app.Activity;   import android.content.ComponentName;   import android.content.Intent;   import android.content.Servic

利用WPF建立自己的3d gis軟體axhost方式

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsVJ7dwF

利用WPF建立自己的3d gis軟體axhost方式拖動一個UI到地球上

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

利用WPF建立自己的3d gis軟體axhost方式實現簡單的粒子效果

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

利用WPF建立自己的3d gis軟體axhost方式跳轉,增加外部三維模型

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsVJ7dwF

利用WPF建立自己的3d gis軟體axhost方式在滑鼠點選的位置增加UI

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsVJ7dwF

利用WPF建立自己的3d gis軟體axhost方式在地圖上新增FrameworkElement

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsVJ7dwF

利用WPF建立自己的3d gis軟體axhost方式向量資料顯示控制

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsVJ7dwF

利用WPF建立自己的3d gis軟體axhost方式基礎狀態切換

  先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVp

spring在web容器啟動時執行初始化方法四種方式

需求:在tomcat啟動時開啟一個定時任務,或初始化slor索引 想法:容器啟動時執行方法,最容易想到的就是servlet中可以配置load-on-startup,設定一個正整數也就可以隨容器一起啟動。 問題:上面的方法很好,但是由於定時任務需要去操作資料庫,而專案

利用WPF建立自己的3d gis軟體axhost方式十二SDK中的導航系統

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

利用WPF建立自己的3d gis軟體axhost方式十三萬能的使用者層介面,強大的WPF

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

利用WPF建立自己的3d gis軟體axhost方式十一SDK中的動畫系統

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV

利用WPF建立自己的3d gis軟體axhost方式SDK中一些自帶的展示面板應用

先下載SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密碼:1te1 地圖資料包(sqlserver2008R2版本,也可以不下載):  https://pan.baidu.com/s/1PjcNamad7OVpCrsV