国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity與Android交互通信系列(4)

這篇具有很好參考價(jià)值的文章主要介紹了Unity與Android交互通信系列(4)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??上篇文章我們實(shí)現(xiàn)了模塊化調(diào)用,運(yùn)用了模塊化設(shè)計(jì)思想和簡(jiǎn)化了調(diào)用流程,本篇文章講述UnityPlayerActivity類的繼承和使用。

??在一些深度交互場(chǎng)合,比如Activity切換、程序啟動(dòng)預(yù)處理等,這時(shí)可能會(huì)需要繼承Application和UnityPlayerActivity類,下面我們演示該功能。

??本示例需要引入U(xiǎn)nityPlayer類,該類位于Unity提供的Classes.jar包中[ 該包文件位置與Unity安裝路徑和版本有關(guān),如筆者使用Unity2020.3.15,Unity安裝在C盤默認(rèn)目錄,其路徑為:C:\Program Files\ Unity\ Hub\ Editor \2020.3.15f1c1\ Editor\ Data\ PlaybackEngines\ AndroidPlayer\ Variations\ il2cpp\ Release\ Classes],所以我們需要先引入該Jar包,首先直接復(fù)制Classes.jar包,然后在Android Studio工程app目錄(本示例使用模塊,所以我們將其放置到android2unity模塊的libs目錄下)的libs文件夾上鼠標(biāo)右鍵,在彈出的菜單中選擇Paste粘貼Classes.jar包。然后打開同級(jí)目錄的build.gradle文件,在其dependencies配置節(jié)中引入該Jar包,如圖1所示。

Unity與Android交互通信系列(4),ARCore,unity,android,交互

圖1引入classes.jar包
??由于我們只是引入其進(jìn)行編譯,保證編譯正確進(jìn)行,打包的時(shí)候并不需要classes.jar包,所以使用complieOnly指令確保該Jar包只用于編譯[ 修改完build.gradle文件后不要忘記點(diǎn)擊Sync Now按鈕以使配置起作用]。

??在Unity2019以后的版本中,UnityPlayerActivity類不再位于Classes.jar包,而是以獨(dú)立的UnityPlayerActivity.java文件存在[ 該java文件位置與Unity安裝路徑和版本有關(guān),如筆者使用Unity2020.3.15,Unity安裝在C盤默認(rèn)目錄,其路徑為:C:\Program Files\ Unity\ Hub\ Editor\ 2020.3.15f1c1\ Editor\ Data\ PlaybackEngines\ AndroidPlayer\ Source\ com \unity3d\ player],將該文件復(fù)制到模塊代碼文件夾下。

??繼承Application類的示例代碼如下:

//代碼片斷1
//Java端代碼
package com.davidwang.android2unity;
import android.app.Application;

public class CustomApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        System.out.println("自定義Application");
    }
}

??繼承UnityPlayerActivity類的示例代碼如下:

//代碼片斷2
//Java端代碼
package com.davidwang.android2unity;
import android.os.Bundle;

public class CustomActivity extends UnityPlayerActivity {
    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        System.out.println("自定義Activity");
    }
}

??正常導(dǎo)出aar包,將該aar包文件復(fù)制到Unity工程Assets/Plugins/Android目錄下。由于我們繼承了Application和UnityPlayerActivity類,實(shí)質(zhì)上是修改了應(yīng)用程序的入口,所以需要在Unity工程Assets/Plugins/Android目錄下新創(chuàng)建AndroidManifest.xml文件,文件內(nèi)容如下:

//代碼片斷3
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.davidwang.android2unity" >
    <application
        android:name="com.davidwang.android2unity.CustomApplication"
        android:label="@string/app_name">
        <activity android:name="com.davidwang.android2unity.CustomActivity"
            android:label="@string/app_name"
            android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="android.app.lib_name" android:value="unity" />
            <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
        </activity>
    </application>
</manifest>

??AndroidManifest.xml文件中第一行定義了應(yīng)用程序包名,所以Unity工程中的包名必須與該包名一致。然后將應(yīng)用程序入口(application節(jié))設(shè)置為自定義的CustomApplication;將啟動(dòng)Activity設(shè)置為自定義的CustomActivity,并設(shè)置了相應(yīng)的intent-filter過濾器。

??因?yàn)槲覀兪侵苯永^承了Unity的主Activity,所以不需要在Unity場(chǎng)景中做任何處理,打包到真機(jī)運(yùn)行,可以看到正確的自定義內(nèi)容輸出。


提示

????????在導(dǎo)入該aar包后,unity打包時(shí)會(huì)引發(fā)配置錯(cuò)誤,原因是aar包中BuildConfig.class類配置與unity項(xiàng)目配置有沖突。將導(dǎo)入的aar包名后綴改為rar,然后利用rar解壓工具直接打開(不是解壓出來),可以看到classes.jar包,鼠標(biāo)雙擊在另一個(gè)解壓界面中打開,然后點(diǎn)擊項(xiàng)目包名依次展開,可以看到在工程/模塊包名下有一個(gè)BuildConfig.class文件,鼠標(biāo)右鍵在彈出的菜單中選擇刪除,關(guān)閉新打開的解壓界面,回到原解壓界面時(shí)會(huì)彈出提示,選擇更新壓縮文件,完成包內(nèi)文件的刪除,最后再將rar后輟改為aar即可。

????????如果是打包為jar文件,處理方法類似,但其包內(nèi)沒有classes.jar包,可以直接點(diǎn)擊模塊包名依次展開,刪除BuildConfig.class文件,后續(xù)處理方法與前文一致。文章來源地址http://www.zghlxwxcb.cn/news/detail-788673.html

到了這里,關(guān)于Unity與Android交互通信系列(4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Unity3D】Unity與Android交互

    【Unity3D】Unity與Android交互

    ? ? ? ? 本文主要介紹 Unity 打包發(fā)布 Android apk 流程、基于?AndroidJavaObject(或?AndroidJavaClass)實(shí)現(xiàn) Unity 調(diào)用 Java 代碼、基于 UnityPlayer 實(shí)現(xiàn) Java 調(diào)用 Unity 代碼,官方介紹見→Android。 ? ? ? ? Unity 項(xiàng)目 C#?中獲取平臺(tái)的代碼如下,需要引入 UnityEngine 命名空間。 ????????Ru

    2024年02月07日
    瀏覽(17)
  • Unity與Android交互(4)——接入SDK

    Unity與Android交互(4)——接入SDK

    【前言】 unity接入Android SDK有兩種方式,一種是把Unity的工程導(dǎo)出google project的形式進(jìn)行接入,另一種是通過把Android的工程做成Plugins的形式進(jìn)行接入。我們接入SDK基本都是將SDK作為插件的形式接入的。 對(duì)我們接入SDK的人來說,SDK也是分等級(jí)的: 第一等級(jí):只有so文件,這種

    2024年02月16日
    瀏覽(25)
  • Unity與Android交互(3)——需要了解的Andorid基礎(chǔ)知識(shí)

    Unity與Android交互(3)——需要了解的Andorid基礎(chǔ)知識(shí)

    【前言】 在上一篇文章中只是說了如何實(shí)現(xiàn)unity和android交互的問題,要了解其中的原理還必須要先了解一些Android的基礎(chǔ)知識(shí),了解后也能搞清楚如何接入SDK或者寫Native插件。 (以下只是簡(jiǎn)要介紹,詳細(xì)的內(nèi)容需要自己去看鏈接) 【Android四大組件】 Activitiy 它提供了一個(gè)窗口

    2024年02月10日
    瀏覽(23)
  • 【unity與android的交互】移動(dòng)游戲發(fā)布更安心!Unity安卓平臺(tái)打包相關(guān)的常見參數(shù)全詳解

    【unity與android的交互】移動(dòng)游戲發(fā)布更安心!Unity安卓平臺(tái)打包相關(guān)的常見參數(shù)全詳解

    ?????個(gè)人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 :Unity基礎(chǔ)實(shí)戰(zhàn) 首先需要切換到安卓平臺(tái) step1 :打包前的基礎(chǔ)參數(shù)的設(shè)置 step2:包名的設(shè)置需要勾選,必須要去設(shè)置的內(nèi)容 打包后進(jìn)行測(cè)

    2024年04月17日
    瀏覽(93)
  • Unity與原生交互之AndroidStudio篇——Unity導(dǎo)出Android工程,導(dǎo)入AndroidStudio打包APK全流程

    Unity與原生交互之AndroidStudio篇——Unity導(dǎo)出Android工程,導(dǎo)入AndroidStudio打包APK全流程

    ? ? ? unityLibrary: unity的功能庫(kù)模塊?, android工程用到的重要文件夾 launcher: unity的啟動(dòng)器模塊,包含很少的java代碼 ??直接Open unity導(dǎo)出的整個(gè)android項(xiàng)目,Launcher模塊作為app啟動(dòng)模塊 ?1.AS先New一個(gè)空項(xiàng)目: ? Empty Activity 不能選擇Language,默認(rèn)為Kotlin語言 ?Empty Views Activity 可以選擇

    2024年02月11日
    瀏覽(22)
  • Unity3D2020+導(dǎo)出Android工程中使用并交互

    Unity3D2020+導(dǎo)出Android工程中使用并交互

    , 目錄 1,版本信息 2,前期準(zhǔn)備 Unity方面: Android方面: 3,Android與Unity3D交互 unity2020+ android studio 2021 *不要用android studio 2020系列,存在不能導(dǎo)入Library的bug 1,先配置打包的一些必要要素,包括包名之類 2,修改打包選項(xiàng),將其打包為Android工程? 3,打包出來的工程如下,其中

    2023年04月08日
    瀏覽(98)
  • 【問題記錄】Unity編譯ARCore模板項(xiàng)目問題

    Unity版本:2021.3.8f1c1 創(chuàng)建AR項(xiàng)目并下載使用默認(rèn)模板,編譯并發(fā)布到Android實(shí)機(jī)。 1、第一個(gè)問題: Error:Could not read cache value from\\\'C:UsersUsername.gradledaemon6.1.1registry.bin\\\'. 查詢參考: 由 (5條消息) 安卓:Could not read cache value from\\\'C:UsersUsername.gradledaemon1.12registry.bin\\\'_Royel transfo

    2023年04月09日
    瀏覽(23)
  • Unity3d使用Netcode實(shí)現(xiàn)Hololens、Android和Pc端通信

    Unity3d使用Netcode實(shí)現(xiàn)Hololens、Android和Pc端通信

    在Unity3d中使用現(xiàn)有的Netcode/Mirror組件實(shí)現(xiàn)Hololens、Android和Pc端的三方通信,可以指定一平臺(tái)為服務(wù)器端,其他的兩平臺(tái)多為客戶端,不過通常是進(jìn)行兩個(gè)平臺(tái)的通信即可。在這片文章中,可以實(shí)現(xiàn)平移、縮放以及旋轉(zhuǎn)的同步 具體步驟如下: 版本:unity2020.3LTS、VS2019 一、配置

    2024年02月09日
    瀏覽(27)
  • Unity與Js通信交互

    Unity與Js通信交互

    目錄 1.Js給Unity傳遞消息 2.Unity給Js傳遞消息 其中,__objectName__ 是場(chǎng)景中的對(duì)象名稱;__methodName__ 是當(dāng)前附加到該對(duì)象的腳本中的方法名稱;__value__ 可以是字符串、數(shù)字,也可為空。 ? unityInstance在打包之后index.html的位置 ?在別的地方用unityInstance,要在圖片紅框位置后面打括號(hào)

    2024年02月03日
    瀏覽(3)
  • Unity3D開發(fā)之unity和js通信交互

    Unity3D開發(fā)之unity和js通信交互

    官方 方法分享:Unity - 手動(dòng):與瀏覽器腳本的交互 (unity3d.com) 首先需要寫一個(gè)JS的腳本,主要是調(diào)用mergeInto();方法,第一個(gè)參數(shù)不用變,第二個(gè)參數(shù)就是JS的方法集合。寫完之后將這個(gè)文件的后綴改為.jslib,放到Plugins文件夾中 ?Test? 內(nèi)容: 2.C#(掛在場(chǎng)景 任意物體上) 3.Uni

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包