Unity(二)打包我們的第一個unity項目

        上一篇博客,我們簡單介紹瞭如何使用unity創建我們的第一個項目,並且介紹了scene和GameObject的一些操作。那麼,這篇博客,我將會介紹和總結如何使用unity把我們的項目打包成一個遊戲。並且把我打包過程中遇到的一些問題以及解決方法一起總結一下。

一.Build Settings

        點擊File,build settings,可以對當前的項目打包,可以選擇打包成PC、Android或者iOS等。如果選擇Android或者IOS提示沒有對應的module,直接在當前頁面打開鏈接下載安裝並且重啓unity即可,如圖所示:

二.Build And Run

        點擊Build And Run後,結果發現彈出如下窗口。大體意思是說我們的包名不對,需要去Player Settings中去設置,需要遵循com.xxx.xxx的格式:

三.Player Settings

        注意,直接點擊左下角的Player Setting是進不去的。我們去選擇Edit,Project Settings,選擇Player,打開,如圖所示,修改公司名和項目名,例如我設置的公司名爲tudu:

        點擊other settings,修改包名,包名要和上面的公司名和產品名一致,(例如我的是com.tudu.MyFirstUnity):

四.繼續Build And Run

        結果,又不出意外的報錯了,如圖所示:

        我們可以看到,報錯:CommandInvokationFailure: Gradle build failed.詳細的報錯日誌如下:

CommandInvokationFailure: Gradle build failed. 
D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'gradleOut'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.4.0.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.4.0.
         > Could not get resource 'https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
            > Could not GET 'https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      > Could not resolve com.android.tools.build:gradle:3.4.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      > Could not resolve com.android.tools.build:gradle:3.4.0.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.4.0/gradle-3.4.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
]
stdout[

]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <62f761e6ab1445a38cdcb4ac36512695>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

        該問題比較簡單的解決方案是,把gradle改成internal,如圖所示:

五.運行結果

        在經過上面的一系列嘗試後,最終,我們的第一個unity遊戲終於可以運行在我們的手機上了,如圖所示:

        這篇博客總結了如何把我們的unity工程打包爲Android的apk,並且總結了在打包過程中遇到的一些問題。後面的博客,將繼續學習和總結unity。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章