欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android內(nèi)嵌Unity并實(shí)現(xiàn)互相跳轉(zhuǎn)的實(shí)例代碼

 更新時(shí)間:2020年11月09日 09:15:33   作者:木小郭  
這篇文章主要介紹了Android內(nèi)嵌Unity并實(shí)現(xiàn)互相跳轉(zhuǎn)的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

說明

本案例使用Unity2019.3.8f1與AndropidStudio3.6.3

源碼git地址:https://github.com/guochaolinDLKF/UnityAndAndroid.git

下面是效果

創(chuàng)建Unity項(xiàng)目

首先創(chuàng)建一個(gè)Unity空項(xiàng)目

在空?qǐng)鼍爸袆?chuàng)建一個(gè)空節(jié)點(diǎn)名字為unityObject,注意:這個(gè)名字是等會(huì)再Android中向Unity發(fā)送消息時(shí)的API中必須要傳的參數(shù)

然后在節(jié)點(diǎn)上添加一個(gè)腳本,腳本中的代碼如下:

using UnityEngine;
using UnityEngine.UI;
 
public class Test : MonoBehaviour
{
  public Button btn;
  AndroidJavaObject jo;
  private void Awake()
  {
    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
    btn.onClick.AddListener(CallAndroid);
  }
  public void CallAndroid()
  {
    jo.Call("ShowToast");//調(diào)用Android中函數(shù)
    Debug.Log("點(diǎn)擊按鈕");
    System.Console.WriteLine("點(diǎn)擊按鈕");
  }
 
  void fromAndroid(string str)
  {
    Debug.Log("安卓傳來信息 : " + str);
    System.Console.WriteLine("安卓傳來信息 : " + str);
  }
}

然后在Build Settings中將平臺(tái)切換到Android

按照上圖的指示操作

然后在Player Settings中設(shè)置Other Settings中的PackageName這個(gè)必須要與Android中的包名一致,不一致可不可以?也行,反正我試著是可以的,我用的手機(jī)是小米9pro,其他機(jī)型沒試過

最后設(shè)置Minimum API Level 要與AndroidStudio中保持一致,這個(gè)如果不一致,在AndroidStudio中發(fā)布時(shí)鐵定會(huì)報(bào)錯(cuò)

簽名呢?需要設(shè)置么?我這里沒有設(shè)置,但是之前設(shè)置了也能正常運(yùn)行,這里跟簽名應(yīng)該沒有太大關(guān)系

我的都沒有設(shè)置,看下圖

接下來就需要在首選項(xiàng)(Edit->Preferences->External)中設(shè)置Android的JDK、和SDK了,JDK據(jù)說最好是7或者8,最好不要是9,反正我的是8

再然后就是點(diǎn)擊Build Settings中的Export導(dǎo)出Android中需要的項(xiàng)目,導(dǎo)出的文件夾與Unity項(xiàng)目的關(guān)系,如果你是第一次看著我的博客教程跟著做,那么請(qǐng)按照我的文件夾的命名與結(jié)構(gòu)來做,因?yàn)樵贏ndroidStudio中需要根據(jù)路徑引入U(xiǎn)nity發(fā)布出來的安卓項(xiàng)目

Unity項(xiàng)目目錄與安卓項(xiàng)目目錄之間的關(guān)系

至此,Unity中設(shè)置已經(jīng)完成

創(chuàng)建安卓項(xiàng)目

選擇NoActivity->Next

創(chuàng)建完成后,開始導(dǎo)入U(xiǎn)nity Build出來的包

注意:前提是創(chuàng)建出來的空的Android項(xiàng)目下方?jīng)]有任何報(bào)錯(cuò)才可以,像下圖一樣

然后選擇settings.gradle文件添加代碼

include ':unityLibrary'
project(':unityLibrary').projectDir = new File('..\\UnityProject\\androidBuild\\unityLibrary')

上面代碼中new File('這里表示unity發(fā)布出來的項(xiàng)目的路徑')

選擇 build.gradle(Module:app)添加 dependencies

 implementation project(':unityLibrary')
  implementation fileTree(dir: project(':unityLibrary').getProjectDir().toString() + ('\\libs'), include: ['*.jar'])

添加引入SO庫架構(gòu),如果不添加,構(gòu)建出來的app運(yùn)行時(shí)會(huì)閃退,并且報(bào)錯(cuò):can not find 'libmain.so'

還是在這個(gè)build.gradle中

ndk {
      // 設(shè)置支持的SO庫架構(gòu),第三方給的so庫哪幾種架構(gòu),就配置這幾種架構(gòu)
      abiFilters 'armeabi', 'armeabi', 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
    }

選擇 build.gradle(Module:NativeAndroidApp)

allprojects {
  repositories {
    google()
    jcenter()
 
    // Add Code
    flatDir {
      dirs "${project(':unityLibrary').projectDir}/libs"
    }
    // End
  }
}

選擇 NativeAndroidApp 的 strings.xml 添加

 <string name="game_view_content_description">Game view</string>

最后點(diǎn)擊AndroidStudio的SyncProject經(jīng)過編譯,左邊就會(huì)出現(xiàn)unity發(fā)布出來的項(xiàng)目的Moudles

至此安卓配置完成

編寫安卓代碼

在包名上右鍵創(chuàng)建兩個(gè)Activity,下圖中,我已經(jīng)創(chuàng)建好了

MainActivity

package com.Wish.UnityProject;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_unity);
    Button btn=(Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, UnityActivity.class);
        startActivity(intent);
      }
    });
  }
}

創(chuàng)建一個(gè)按鈕,按下按鈕跳轉(zhuǎn)到Unity中

雙擊.xml文件

將下圖中的Button拖拽到白框內(nèi)

對(duì)按鈕進(jìn)行設(shè)置

然后回調(diào)MainActivity中,就不會(huì)有報(bào)錯(cuò)了

創(chuàng)建UnityActivity類

package com.Wish.UnityProject;
 
import android.content.Intent;
import android.os.Bundle;
 
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
 
public class UnityActivity extends UnityPlayerActivity {
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    testSendMessage();
  }
  // 向unity發(fā)送信息
  public void testSendMessage()
  {
    //第一個(gè)參數(shù)是Unity中一個(gè)節(jié)點(diǎn)對(duì)象的名字,第二個(gè)參數(shù)是節(jié)點(diǎn)對(duì)象上掛的腳本中一個(gè)函數(shù)的名字,第三個(gè)參數(shù)是函數(shù)中的參數(shù)值
    UnityPlayer.UnitySendMessage("unityObject", "fromAndroid", "test");
  }
  // 接收unity信息
  public void ShowToast()
  {
    // unity點(diǎn)擊按鈕跳轉(zhuǎn)回安卓界面
    Intent intent = new Intent(this, MainActivity.class);
    this.startActivity(intent);
  }
}

如果UnityPlayerActivity變成紅色,說明沒有引入,只需要將鼠標(biāo)光標(biāo)放到UnityPlayerActivity這句代碼上,然后按下鍵盤Alt+Enter鍵,就可以了自動(dòng)引入了

設(shè)置app下面的AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.Wish.UnityProject">
 
  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
      android:name="com.Wish.UnityProject.MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
 
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
    <activity android:name="com.Wish.UnityProject.UnityActivity">
 
    </activity>
 
  </application>
 
</manifest>

其中下面的代碼所在的activity,就是程序一開始進(jìn)入的界面,也就是安卓界面,

<action android:name="android.intent.action.MAIN" />
 
 <category android:name="android.intent.category.LAUNCHER" />

修改unityLibrary下面的AndroidManifest.xml文件

至此安卓端代碼已經(jīng)寫完

發(fā)布安卓APP到手機(jī)

點(diǎn)擊菜單欄中Build->RebuildProject構(gòu)建項(xiàng)目

將手機(jī)連接到電腦,并且調(diào)成USB調(diào)試模式中的傳輸文件模式

按下下圖按鈕,便會(huì)發(fā)布到手機(jī)中并自動(dòng)運(yùn)行

參考文章:

https://www.cnblogs.com/zhxmdefj/p/13273560.html

https://blog.csdn.net/mediary/article/details/103050516

https://blog.csdn.net/qq_37310110/article/details/98056148

到此這篇關(guān)于Android內(nèi)嵌Unity并實(shí)現(xiàn)互相跳轉(zhuǎn)的文章就介紹到這了,更多相關(guān)Android內(nèi)嵌Unity互相跳轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android多線程處理機(jī)制中的Handler使用介紹

    Android多線程處理機(jī)制中的Handler使用介紹

    本文將為大家介紹下Android的Handler的使用方法,Handler可以發(fā)送Messsage和Runnable對(duì)象到與其相關(guān)聯(lián)的線程的消息隊(duì)列,感興趣的朋友可以了解下哈
    2013-06-06
  • Android實(shí)現(xiàn)圖片裁剪和上傳

    Android實(shí)現(xiàn)圖片裁剪和上傳

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片的裁剪和上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android使用MMKV的記錄

    Android使用MMKV的記錄

    聽說騰訊的mmkv很牛皮,可以替代SharedPreferences,主要用來保存設(shè)置,比如串口號(hào)、波特率、攝像頭預(yù)覽角度等等,本文重點(diǎn)給大家介紹Android使用MMKV的記錄分享,感興趣的朋友一起看看吧
    2021-10-10
  • Android和JavaScript相互調(diào)用的方法

    Android和JavaScript相互調(diào)用的方法

    這篇文章主要介紹了Android和JavaScript相互調(diào)用的方法,實(shí)例分析了Android的WebView執(zhí)行JavaScript及JavaScript訪問Android的技巧,需要的朋友可以參考下
    2015-12-12
  • Android10自動(dòng)連接WiFi問題的解決

    Android10自動(dòng)連接WiFi問題的解決

    這篇文章主要介紹了Android10自動(dòng)連接WiFi問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Android通過wifi連接手機(jī)(不需要root)

    Android通過wifi連接手機(jī)(不需要root)

    這篇文章主要為大家詳細(xì)介紹了Android通過wifi連接手機(jī),不需要root,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android編程基于重力傳感器實(shí)現(xiàn)橫豎屏放向切換功能

    Android編程基于重力傳感器實(shí)現(xiàn)橫豎屏放向切換功能

    這篇文章主要介紹了Android編程基于重力傳感器實(shí)現(xiàn)橫豎屏放向切換功能,結(jié)合具體實(shí)例形式分析了Android基于重力傳感器實(shí)現(xiàn)橫豎屏切換的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 詳解Android StrictMode嚴(yán)格模式的使用方法

    詳解Android StrictMode嚴(yán)格模式的使用方法

    這篇文章主要介紹了Android StrictMode嚴(yán)格模式的使用方法,需要的朋友可以參考下
    2018-01-01
  • Android仿拉手網(wǎng)團(tuán)購App我的收藏界面實(shí)例代碼

    Android仿拉手網(wǎng)團(tuán)購App我的收藏界面實(shí)例代碼

    這篇文章主要介紹了Android仿拉手團(tuán)購網(wǎng)App我的收藏界面實(shí)例代碼,需要的朋友可以參考下
    2017-05-05
  • Android實(shí)現(xiàn)ImageView圖片雙擊放大及縮小

    Android實(shí)現(xiàn)ImageView圖片雙擊放大及縮小

    這篇文章主要介紹了Android實(shí)現(xiàn)ImageView圖片雙擊放大及縮小的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評(píng)論