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

第五十九章 Unity 發(fā)布Android平臺

這篇具有很好參考價值的文章主要介紹了第五十九章 Unity 發(fā)布Android平臺。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

本章節(jié)我們講解如何打包發(fā)布到安卓手機(jī)平臺。要為 Android 構(gòu)建和運(yùn)行應(yīng)用程序,必須安裝 Unity Android Build Support 平臺模塊。還需要安裝 Android 軟件開發(fā)工具包(SDK)和原生開發(fā)工具包(NDK)才能在 Android 設(shè)備上構(gòu)建和運(yùn)行代碼。默認(rèn)情況下,Unity 會安裝基于 OpenJDK 的 Java 開發(fā)工具包。

在我們使用Unity Hub 安裝Unity Editor的時候,就會提示我們是否安裝平臺編譯庫。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

上面的截圖中我們發(fā)現(xiàn)了“Android Build Support”勾選項,如果我們的項目需要發(fā)布到安卓手機(jī)平臺的話,就需要勾選此項。那么,Unity就會自動幫我們下載安裝SDK,NDK以及OpenJDK了。當(dāng)然,如果安裝的時候沒有選擇也沒有關(guān)系,我們可以通過Unity Hub補(bǔ)充安裝他們。具體的操作,我們也不再詳細(xì)介紹了。

Unity的平臺編譯庫目錄在“Unity Editor\2020.3.35f1c2\Editor\Data\PlaybackEngines”下

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這里我們安裝了三個平臺:Android,WebGL,Windows

我們進(jìn)入到“AndoridPlayer”目錄中查看

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

我們可以看到NDK,OpenJDK,SDK三個目錄。他們的版本與我們的Unity版本有一些關(guān)系。由于我們安裝的是Unity2020版本,我們的NDK是r19版本,我們的OpenJDK是1.8版本,SDK里面有29和30兩個版本。

如果多個 Unity 版本共享 Android SDK & NDK Tools 和 OpenJDK,則可以在 Unity Preferences 窗口中指定一個共享位置。為此,請在菜單欄選擇Edit -> Preferences -> External Tools,并在JDK, SDK 和 NDK 字段中輸入對應(yīng)的安裝目錄即可。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

介紹完編譯安卓應(yīng)用程序的環(huán)境配置后,我們來說一下編譯安卓應(yīng)用的一些配置信息。AndroidManifest.xml 是每個android程序中必須的文件,里面包含了應(yīng)用程序的配置信息。該文件是一個XML格式的配置文件,其根標(biāo)簽是manifest,其下很多的子標(biāo)簽用于配置各種信息,比如application用于整個應(yīng)用的配置,activity用于配置活動等等。

AndroidManifest.xml的作用是什么?

1.??? 描述應(yīng)用的包名:Android設(shè)備根據(jù)包名來區(qū)分不同的APP。

2.??? 描述應(yīng)用中的組件:例如Activity,Service,Provider,BroadcastReceiver等組件。

3.??? 描述應(yīng)用所需要訪問的權(quán)限。

另外,安卓應(yīng)用程序一般都是通過gradle工具來構(gòu)建的。谷歌官方推出的Android Studio開發(fā)工具就是使用gradle,我們的Unity也是使用它。該工具對于每一個應(yīng)用程序都會生成一個build.gradle文件。在這個文件中,我們會配置應(yīng)用的包名applicationId,相當(dāng)應(yīng)用程序的id。需要我們了解的是compileSdkVersion,minSdkVersion,targetSdkVersion三項的配置。這三項配置都對應(yīng)了安卓系統(tǒng)的版本。關(guān)于安卓系統(tǒng)的版本,大家可以看以下列表。

系統(tǒng)版本??? ?????? SDK版本??? 版本名稱

Android 11.0??? ? 30???? ???????? (Android 11)

Android 10.0??? ? 29?? ?????????? (Android Q)

Android 9.0??? ??? 28??? ?????????? Pie (Android P)

Android 8.1??? ??? 27??? ?????????? Oreo(Android O)

Android 8.0??? ??? 26??? ?????????? Oreo(Android O)(奧利奧)

Android 7.1??? ??? 25??? ?????????? Nougat(Android N)(牛軋?zhí)牵?/span>

Android 7.0??? ??? 24??? ?????????? Nougat(Android N)(牛軋?zhí)牵?/span>

Android 6.0??? ??? 23?? ??????????? Marshmallow(Android M)(棉花糖)

Android 5.1??? ??? 22??? ?????????? Lollipop(Android L)(棒棒糖)

Android 5.0??? ??? 21??? ?????????? Lollipop(Android L)(棒棒糖)

Android 4.4??? ??? 19??? ?????????? KITKAT(奇巧巧克力)

Android 11是Google于2020年9月9日正式發(fā)布的新的操作系統(tǒng)版本。那么,為什么開發(fā)一個安卓應(yīng)用程序需要配置三個版本呢?由于安卓系統(tǒng)發(fā)布比較頻繁,且對應(yīng)的API也隨之發(fā)生變化。例如:有的API可能會廢棄,有的新添加的API等等。那么,這就造成一個問題,我們的應(yīng)用程序如何在眾多版本中穩(wěn)定的運(yùn)行。也就是說,我們的應(yīng)用程序如何才能最大程度的兼容這些不同版本的安卓系統(tǒng)。

首先,compileSdkVersion指定了Grandle要采用哪個版本的Android SDK編譯自己的應(yīng)用程序,應(yīng)用程序中使用的API級別不得高于編譯用的SDK的版本。Google官方建議總是使用最新版的穩(wěn)定SDK編譯自己的應(yīng)用程序。

其次,minSdkVersion就是應(yīng)用程序可以運(yùn)行的最低系統(tǒng)版本要求。在低于minSdkVersion的Android系統(tǒng)上無法安裝此應(yīng)用程序的。在開發(fā)階段,如果你使用了低于minSdkVersion的API,開發(fā)工具就會發(fā)出警告。對于minSdkVersion的選擇,我們應(yīng)該看各個api的用戶使用占比。一般說來我們適配4.4以上,即minSdkVersion=19,不過還要根據(jù)自己的實際情況,去選擇相應(yīng)的版本號。

說白了,我們使用SDK API的時候,需要介于minSdkVersion和compileSdkVersion之間。但是,如果我們使用的手機(jī)系統(tǒng)高于compileSdkVersion的話,我們的APP就不能安裝運(yùn)行了嘛?肯定不是的,但是某些行為可能會不同。這就涉及到targetSdkVersion的設(shè)置。

最后,targetSdkVersion目標(biāo)SDK版本。targetSdkVersion理解起來要稍微比compileSdkVersion和minSdkVersion困難一些。當(dāng)你設(shè)置了targetSdkVersion的時候,表示你已經(jīng)充分測試過了你的應(yīng)用程序在該目標(biāo)版本的運(yùn)行情況。targetSdkVersion 是 Android 系統(tǒng)提供前向兼容的主要手段。這是什么意思呢?隨著 Android 版本的升級,它的某個的 API的行為可能會發(fā)生改變,但是為了保證我們應(yīng)用程序的行為還是和以前兼容。只要 targetSdkVersion設(shè)置不變,即使這個應(yīng)用程序安裝在新Android 系統(tǒng)上,其行為還是保持老的系統(tǒng)上的行為,這樣就保證了系統(tǒng)對老應(yīng)用的向前兼容性。當(dāng)然,新的系統(tǒng)(大于targetSdkVersion)就會表現(xiàn)新的API行為。因此,作為一名開發(fā)者,應(yīng)該特別注意安卓系統(tǒng)版本更新時的API變化。因此,我們開發(fā)安卓應(yīng)用程序的時候,盡量使用一些基礎(chǔ)穩(wěn)定的API來實現(xiàn)功能,這樣即使一個老版本的應(yīng)用程序放在幾年后的Android新設(shè)備上依然能順利運(yùn)行。

但是對于一些新增加的API,我們就必須在新的安卓版本中才能使用。比如我們當(dāng)前Andorid 9.0(SDK=28),Android 10(SDK=29) 新增了有關(guān)5G的API。我們的應(yīng)用程序想要使用5G相關(guān)的API,這時只需要將compileSdkVersion設(shè)置為29版本,就能在編譯階段編譯通過。此外,還需要注意的是,由于這個5G API是新增的,因此需要判斷當(dāng)前系統(tǒng)版本>=29才能使用新API,否者是不能夠使用的(低于29版本的安卓系統(tǒng)上)。

綜合來看,三者的關(guān)系是:minSdkVersion <= targetSdkVersion <= compileSdkVersion

并且建議 targetSdkVersion和compileSdkVersion一樣。

那么,在Unity中如何設(shè)置compileSdkVersion,minSdkVersion,targetSdkVersion三者呢?我們點(diǎn)擊菜單:Edit -> Project Settings -> Player,選擇 Android 平臺,然后在 Other Settings -> Identification 面板中就能找到了。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

我們發(fā)現(xiàn)了minSdkVersion和targetSdkVersion兩個項目設(shè)置,沒有發(fā)現(xiàn)compileSdkVersion的設(shè)置。請大家注意的是,Unity的設(shè)置里默認(rèn)targetSdkVersion = compileSdkVersion的。我們根據(jù)上面的截圖顯示,最小版本為 Android4.4(SDK=19),而目標(biāo)編譯版本為“Automatic”。也就是我們安裝的SDK中的最高版本。我們之前提到過,Unity2020默認(rèn)安裝的是安卓版本是有29和30兩個版本。那么,這里就非常明顯了,目標(biāo)編譯版本就是30這個版本。也就是當(dāng)下谷歌發(fā)布的最新的安卓系統(tǒng)版本。以上內(nèi)容,我們了解就可以了。

接下來,我們就開始將我們的“TouchDemo”工程打包發(fā)布安卓應(yīng)用程序。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這個3D模式下的場景內(nèi)容

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這是2D模式下的UI內(nèi)容。

在這個工程中,我們給主相機(jī)添加了MoveScript腳本。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

接下來,我們雙擊打開這個MoveScript腳本,修改如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveScript : MonoBehaviour
{

    // 立方體游戲?qū)ο?    public Transform cube;

    // 立方體移動速度
    private float speed = 2.0f;

    public void OnMoveTest(Vector2 v)
    {
        // 搖桿輸入
        float horizontal = v.x;
        float vertical = v.y;

        // 物體位置變化
        Vector3 position = cube.position;
        position.x += speed * horizontal * Time.deltaTime;
        position.z += speed * vertical * Time.deltaTime;

        // 更新物體位置
        cube.position = position;
    }
}

修改完畢之后,我們在回到主相機(jī)的Inspector檢視面板中,

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

我們將Hierarchy層次面板中的Cube拖拽到上圖檢視面板MoveScript腳本下的Cube處。說白了,我們就是想使用模擬搖桿來控制Cube移動。我們可以Play查看效果。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

接下來,我們就將該工程打包到Android平臺下。首先,我們點(diǎn)擊菜單欄File -> Build Settings,然后彈出的窗口左側(cè)選擇“Android”平臺。如果我們之前選擇了其他平臺,我們就需要再點(diǎn)擊右下角的“Switch Platform”切換平臺。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

平臺切換完畢后,我們點(diǎn)擊左下角的“Player Settings”按鈕

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這里我們設(shè)置公司名稱,應(yīng)用名稱以及啟動圖標(biāo)。

Unity打包Android安裝包的時候,在Resolution and Presentation -> Default Orientation選項中可以設(shè)置游戲的橫豎屏顯示以及是否允許旋轉(zhuǎn)方向。默認(rèn)方向:Auto Rotation(自動旋轉(zhuǎn))。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

它的所有選項如下所示:

1. Portrait:豎屏

2. Portrait Upside Down:豎屏,手機(jī)倒過來

3. Landscape Right:橫屏,屏幕在home鍵右邊

4. Landscape Left:橫屏,屏幕在home鍵左邊(比較常用)

5. Auto Rotation:自動旋轉(zhuǎn)屏幕

這里,我們選擇一個Landscape Left吧。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

然后我們繼續(xù)展開“Other Settings”

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

然后找到 Identification 項目

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這里我們只修改安卓應(yīng)用程序的包名即可。Unity要求包名的格式為:包名稱必須遵循約定“com.YourCompanyName.YourProductName”,并且只能包含字母數(shù)字和下劃線字符。其中,YourCompanyName和YourProductName基本上已經(jīng)鎖定了。所以,這里基本不用改動。最后我們關(guān)閉當(dāng)前窗口,回到Build Settings窗口,點(diǎn)擊右下角的“Build”按鈕打包發(fā)布了。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

選擇一個存儲目錄(E:\workspace\TouchDemo),起名為“TouchDemo.apk”,然后點(diǎn)擊保存。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

開始打包發(fā)布中,等待一段時間后就打包完成了,我們?nèi)ァ癊:\workspace\TouchDemo”查看

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

我們將這個APP的安裝包發(fā)給手機(jī)(也可以使用模擬器測試)上面安裝就可以了。

unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

?unity開發(fā)安卓,Unity基礎(chǔ),unity,unity基礎(chǔ),unity入門,unity教程

這是運(yùn)行后的效果,可以借助“搖桿”來控制Cube移動。

本課程涉及的內(nèi)容已經(jīng)共享到百度網(wǎng)盤:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id文章來源地址http://www.zghlxwxcb.cn/news/detail-629022.html

到了這里,關(guān)于第五十九章 Unity 發(fā)布Android平臺的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Unity 3D PC平臺發(fā)布|| Unity 3D Web 平臺發(fā)布||Unity 3D Android平臺發(fā)布

    Unity 3D PC平臺發(fā)布|| Unity 3D Web 平臺發(fā)布||Unity 3D Android平臺發(fā)布

    PC 是最常見的游戲運(yùn)行平臺。 隨著歐美游戲的崛起,PC 平臺隨之發(fā)生游戲登陸大潮。 在 PC 平臺上發(fā)布游戲的步驟: 打開要發(fā)布的 Unity 3D 工程,執(zhí)行? File ?→? Build Settings ?菜單命令。 在? Platform ?列表框中選擇? PC,MacLinux Standalone ?選項,在右側(cè)的? Target Platform ?下拉列

    2024年02月04日
    瀏覽(27)
  • 第三十九章 Unity 圖像 (Image) UI

    第三十九章 Unity 圖像 (Image) UI

    本章節(jié),我們介紹一下“Image”UI元素,首先我們創(chuàng)建一個新場景“SampleScene2.unity”。然后我們點(diǎn)擊菜單欄“GameObjec”-“UI”-“Image”,如下所示 我們將其放置到了中間位置,檢視面板中的參數(shù)如下? 默認(rèn)情況下,這個“Image”的尺寸是100 * 100像素。 這里,我們主要介紹它的

    2024年02月10日
    瀏覽(89)
  • 第五十六章 Unity 音頻播放

    第五十六章 Unity 音頻播放

    Unity可以導(dǎo)入大多數(shù)標(biāo)準(zhǔn)音頻文件格式,精通于在3D 空間中播放聲音,還可根據(jù)需要提供其他效果。雖然播放聲音是一件非常簡單的事情,但是為了模擬現(xiàn)實直接中的各種聲音效果,Unity會提供各種各樣的組件來實現(xiàn)。 首先,我們需要了解“多普勒效應(yīng)”。他是一名奧地物理

    2024年02月07日
    瀏覽(29)
  • 第四十九章 Unity UI適配器組件

    第四十九章 Unity UI適配器組件

    首先,我們介紹內(nèi)容大小適配器 (Content Size Fitter)組件。 我們新建一個“SampleScene6.unity”場景,然后添加一個Text UI元素,讓其居中顯示,并且尺寸設(shè)置為50*30。 ? 由于我們設(shè)置Text的尺寸在水平方向上面太小,也就是Width值太小,里面的內(nèi)容“New Text”無法全部顯示。當(dāng)然,我

    2024年02月04日
    瀏覽(25)
  • 第五十一章 Unity Input Manager 輸入系統(tǒng)(下)

    第五十一章 Unity Input Manager 輸入系統(tǒng)(下)

    本章節(jié)我們就來使用水平軸和垂直軸來控制游戲物體的移動和旋轉(zhuǎn)。我們之前大致講過,游戲物體移動最重要的是方向,速度和時間三個要素,同樣旋轉(zhuǎn)也是。接下來,我們將之前創(chuàng)建的地形場景導(dǎo)入進(jìn)來,如下所示 然后將之前的“MecanimDemo”工程里面的模型文件和動畫文件

    2024年02月03日
    瀏覽(25)
  • 第五十二章 Unity Input System 新輸入系統(tǒng)

    第五十二章 Unity Input System 新輸入系統(tǒng)

    新輸入系統(tǒng)InputSystem是2019年Unity新推出的插件。請注意,Unity默認(rèn)使用舊的Input Manager,新的Input System處于未啟用狀態(tài)。當(dāng)你安裝Input System組件時,Unity會詢問你是否啟用新的輸入系統(tǒng)。如果你選擇Yes,Unity會啟用新的并禁用舊的,之后編輯器將重新啟動。具體的操作是,打開包

    2024年02月07日
    瀏覽(22)
  • Unity發(fā)布Android平臺錯誤記錄

    Unity發(fā)布Android平臺錯誤記錄

    注釋掉android.enableR8= MINIFY_WITH_R_EIGHT 打包就可以了 NDK小版本問題不對 如果是大版本問題直接下載對應(yīng)版本的NDK,如果是小版本就行下圖遮掩解決,找到ndk目錄,直接修改小版本和報錯需要請求的版本可能能解。 (1)在E:Androidandroid-sdk-windowsbuild-tools32.0.0拷貝d8.bat文件,修改

    2024年02月11日
    瀏覽(17)
  • 第五十九回: Slider Widget

    我們在上一章回中介紹了Form Widget相關(guān)的內(nèi)容,本章回中將介紹 Slider Widget.閑話休提,讓我們一起Talk Flutter吧。 我們在這里說的 Slider Widget是一種滑動條組件,通過滑動來控制不同的進(jìn)度,它類似進(jìn)度條,不過需要我們讓去去滑動它的是進(jìn)度,在實際項目中經(jīng)常用它來調(diào)節(jié)音

    2024年02月09日
    瀏覽(21)
  • sqlilabs第五十九六十關(guān)

    sqlilabs第五十九六十關(guān)

    手工注入 報錯注入 手工注入

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

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

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

    2024年04月17日
    瀏覽(92)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包