Unity3d和Android的互相呼叫(一)
摘要
遊戲開發中進行會用到和原生元件進行相互呼叫,比如說;遊戲中需要支付,那麼就會通過Unity3D調取Android介面的方法。那麼我們來看一下如何進行這個呼叫效果的。
原理
unity3d實現了這樣的結構,那麼這樣的結構是什麼呢,讓我們把他歸一歸類講解。
Unity呼叫Android的方法
- 沒有返回值得普通方法
C#中呼叫方式call(String moduleName)
AndroidJavaObject jo = new AndroidJavaObject("android.content.res.Configuration");
jo.Call ("setToDefaults");
在java中的方法格式為
public void setToDefaults(){
//你的方法邏輯
}
- 帶有返回值得普通方法
AndroidJavaObject jo = new AndroidJavaObject("java.lang.String", "some string");
int hash = jo.Call<int>("hashCode");
在java中的方法格式為
public int hashCode(){
//你的方法邏輯
}
- 沒有返回值的靜態方法
AndroidJavaObject jo = new AndroidJavaObject("android.os.Binder");
jo.CallStatic("flushPendingCommands");
在java中的方法格式為
public static void flushPendingCommands(){
//你的方法邏輯
}
- 帶有返回值的靜態方法
AndroidJavaObject jo = new AndroidJavaObject("java.lang.String");
string valueString = jo.CallStatic<string>("valueOf", 42.0);
在java中的方法格式為
public static string valueOf(){
//你的方法邏輯
}
Android呼叫unity3d的方法
只需要在你匯入了遊戲打包後的資料後,就可以通過如下程式碼段,來進行Android呼叫unity3d的方法了。
UnityPlayer.UnitySendMessage("unitychan", "next", "");
UnitySendMessage
中第一個引數為Unity3d中模型的名字,第二個引數為C#指令碼中的方法名,第三個為方法的引數。
注意:使用這個方法前,請確認你的Unity3d中該unitychan
物件身上掛著的指令碼中有這個方法。
例如:
void next()
{
anim.SetBool("Next", true);
}
相關推薦
Unity和Android互相呼叫方法
前言我們unity程式有很多依賴android的地方,以為很簡單,後來發現坑好多。unity只有在主執行緒才能調android的方法,在unity中調android的方法啟動執行緒都不能執行,在unity的子執行緒無法獲取AndroidJavaObject,這樣耗時方法呼叫就
Unity3d和Android的互相呼叫(一)
摘要 遊戲開發中進行會用到和原生元件進行相互呼叫,比如說;遊戲中需要支付,那麼就會通過Unity3D調取Android介面的方法。那麼我們來看一下如何進行這個呼叫效果的。 原
Android C++和JAVA互相呼叫
摘要:1 Java類生成c標頭檔案和庫檔案2 對於c/c++程式,啟動時先啟動jvm,然後獲得對應的java類的物件和方法。然後正常使用。最近正在做一個C/C++呼叫java的程式,這裡說的呼叫java不是使用方式 exec(/path/to/java,.....),而是呼叫一個class檔案中的一個特定的
iOS UIWebView中JS和OC互相呼叫
最近做的專案中,是用html做的,我這邊直接用iOS原生的UIWebView進行載入顯示,在期間用到了js和OC的互相呼叫,這裡記錄下來 JS呼叫OC方法: 首先,什麼是JS呼叫O
jxbrowser 實現java 和 js互相呼叫(破解版請聯絡作者)
今天我們使用jxbrowser 實現js直接呼叫java程式碼。 呼叫javaTest類的 alert方法。 主要就是給瀏覽器物件新增一個監聽,然後在頁面渲染完成之後,獲取到js的window物件,給window物件新增一個 屬性。 破解版聯絡QQ 92188819
Unity3D 和 Android 互動時遇到的常見的兩個問題
CommandInvokationFailure: Failed to re-package resources. E:\android\android-sdk-windows\android-sdk-windows\build-tools\25.0.2\aapt.exe package
Python和lua互相呼叫
本帖中用到的py模組是lupa,目前版本是1.7,通過pip可以直接安裝。說明一下,由於這個模組的文件非常少,只有幾個程式碼例子,所以以下所說都是根據已有的例子自己測出來的。如果有更好的辦法請回帖。 一、python呼叫lua,這個不用廢話了,照搬lupa在python社群的所有例子都可以,但要
介紹了webkit到webengine的和webengine中js和C++互相呼叫的方法
pro檔案 檔案中需要加入”QT += core gui webenginewidgets”這句話,不然提示找不到檔案 QT += core gui QT += core gui webenginewidgets greaterThan(QT_MAJOR
java和python互相呼叫
python作為一種指令碼語言,大量用於測試用例和測試程式碼的編寫,尤其適用於互動式業務場景。實際應用中,很多網管系統做的如交換機、防火牆等裝置升級,往往和裝置互動的命令以及裝置回顯的
andriod 和Unity 互相呼叫 以及 IOS與unity互相呼叫
if (Application.platform == RuntimePlatform.Android) { using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.Un
JniHelper java和c++互相呼叫
假設兩邊檔案為:JniUtil.cpp 和 Jutil.javaJutil.java裡面 ---包名為com.abc.game方法:public static void test1() { // ….}public void test2() { // ….}
攔截器中,request中getReader()和getInputStream()只能呼叫一次,構建可重複讀取inputStream的request.
由於 request中getReader()和getInputStream()只能呼叫一次 在專案中,可能會出現需要針對介面引數進行校驗等問題。 因此,針對這問題,給出一下解決方案 step 1: 新增RepeatedlyReadRequestWrap
js和Android 的互相呼叫
首先是初始化webview 接著是 這樣就實現了呼叫。 js呼叫 Android 主要是addJavascriptInterface(object obj,String name)這個方法。obj 是傳入一個類。類種實現了js上宣告的方法。例如在js中這樣宣告 其中wi
Android JNI中C和JAVA程式碼之間的互相呼叫
jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...); jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list); jobject
js 與 android 的互動(方法互呼叫) 和android向 js傳遞值, js向android傳引數 事件攔截看上一篇
mail_detail_v2.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewpor
Android與JS之間的互相呼叫互動(一)
Android裝置多解析度的問題Android瀏覽器預設預覽模式瀏覽 會縮小頁面 WebView中則會以原始大小顯示Android瀏覽器和WebView預設為mdpi。hdpi相當於mdpi的1.5倍 ldpi相當於0.75倍三種解決方式:1 viewport屬性 2 CS
Android和js程式碼互相呼叫
在js中,有如下程式碼: <script> //js呼叫安卓 function sendDataToAndroid(){ //呼叫android程式中的方法,並傳遞引數。 var name = document.getE
JNI學習(一)(c和java層物件互相呼叫)
c層呼叫java物件 package com.example.bean; /** * * java物件 * @author telenewbie * */ public class JNI_cCalljava_test { publi
Android呼叫微信掃一掃和支付寶掃一掃
微信在自己的應用中開啟微信掃一掃程式碼:private void toWeChatScan() { try { //利用Intent開啟微信 Uri uri =
Android原生方法和Web JS互相呼叫
準備工作 新建一個Android專案準備一個html檔案,為了簡化,直接放到專案的assets目錄下呼叫JS呼叫Android原生方法 在Android專案中 配置WebView,WebView的配置中必須啟用JavaScript,新增JavaScript的入口介面,方法如