Bagian di halaman ini:
Ketika Anda mengembangkan aplikasi Unity Android, Anda dapat menggunakan plug-insSatu set kode yang dibuat di luar Unity yang menciptakan fungsi dalam Unity. Ada dua jenis plug-ins yang dapat Anda gunakan di Unity: Managed plug-ins (diproduksi. Rakitan NET dibuat dengan alat-alat seperti Studio Visual) dan plug-ins asli (pustaka kode asli yang spesifik platform). More info
Lihat di Glossary untuk memperpanjang kelas standar UnityPlayerActivity
(kelas Java utama untuk Unity Player di Android, mirip dengan AppController.mm
pada Unity iOS). Aplikasi dapat menimpa semua interaksi dasar antara OS Android dan aplikasi Android Unity.
Untuk menimpa aktivitas default:
Activity
baru yang berasal dari UnityPlayerActivity
(lihat dokumentasi Android pada Activity);Activity
baru sebagai titik masuk aplikasi.Cara termudah untuk mencapai ini adalah untuk mengekspor proyek Anda dari Unity, kemudian membuat modifikasi yang diperlukan untuk kelas UnityPlayerActivity
di Android Studio. Atau, Anda dapat membuat kelas baru, memperluasnya, memodifikasi AndroidManifest.xml
dalam proyek kesatuanLibrary, dan kemudian mengganti UnityPlayerActivity
dengan kelas Anda.
Untuk membuat plug-in dengan Activity
baru Anda dan tambahkan ke Anda Proyek, melakukan langkah-langkah berikut:
/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/src/com/unity3d/player
C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\src\com\unity3d\player
Activity
baru sebagai titik masuk aplikasi Anda, kemudian letakkan file AndroidManifest.xml
di folder Assets/Plugins/Android
Proyek Anda.Ketika Anda memperpanjang UnityPlayerActivity
, Anda dapat override String UnityPlayerActivity.updateUnityCommandLineArguments
(String cmdLine) untuk melewati argumen startup ke Unity.
UnityPlayerActivity
memanggil metode ini selama startup. Ini menerima argumen baris perintah saat ini, yang dapat null atau kosong, dan mengembalikan string baru argumen baris perintah untuk lulus ke Unity.
Untuk gambaran umum antarmuka baris perintah Unity, lihat argumen baris perintah.
Contoh berikut menunjukkan cara menggunakan ini untuk memilih API Grafik berdasarkan perangkat saat ini:
package com.company.product;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.os.Build;
public class OverrideExample extends UnityPlayerActivity {
private boolean preferVulkan() {
// Use Vulkan on Google Pixel devices
if (Build.MANUFACTURER.equals("Google") && Build.MODEL.startsWith("Pixel"))
return true;
else
return false;
}
private boolean preferES2() {
// Use OpenGL ES 2.0 on devices that run Android 5.1 or older
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1)
return true;
else
return false;
}
private String appendCommandLineArgument(String cmdLine, String arg) {
if (arg == null || arg.isEmpty())
return cmdLine;
else if (cmdLine == null || cmdLine.isEmpty())
return arg;
else
return cmdLine + " " + arg;
}
@Override protected String updateUnityCommandLineArguments(String cmdLine)
{
if (preferVulkan())
return appendCommandLineArgument(cmdLine, "-force-vulkan");
else if (preferES2())
return appendCommandLineArgument(cmdLine, "-force-gles20");
else
return cmdLine; // let Unity pick the Graphics API based on PlayerSettings
}
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
}
Berikut ini adalah contoh dari file UnityPlayerActivity
:
OverrideExample.java:
package com.company.product;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.util.Log;
public class OverrideExample extends UnityPlayerActivity {
protected void onCreate(Bundle savedInstanceState) {
// call UnityPlayerActivity.onCreate()
super.onCreate(savedInstanceState);
// print debug message to logcat
Log.d("OverrideActivity", "onCreate called!");
}
public void onBackPressed()
{
// instead of calling UnityPlayerActivity.onBackPressed() we just ignore the back button event
// super.onBackPressed();
}
}
AndroidManifest.xml
yang sesuai mungkin terlihat seperti berikut:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.product">
<application android:icon="@drawable/app_icon" android:label="@string/app_name">
<activity android:name="com.YourPackage.name.OverrideExample"
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>
</activity>
</application>
</manifest>
Untuk membuat plug-in dengan Aktivitas baru Anda dan tambahkan ke Anda Proyek, Anda harus melakukan langkah-langkah berikut: