Tạo thư viện JAR từ Android Studio
Để tích hợp mã Java tùy chỉnh vào một dự án Unity, bạn có thể đóng gói mã Java vào một file JAR và sau đó gọi nó từ script C# trong Unity. Hướng dẫn này sẽ hướng dẫn bạn từng bước để tạo một file JAR đơn giản từ Android Studio và sử dụng nó trong Unity.
1. Tạo một dự án Android Studio
Đầu tiên, hãy tạo một dự án mới trong Android Studio. Khi tạo, hãy chú ý đến trường Package Name, vì bạn sẽ cần sử dụng tên gói này sau này trong script Unity.
2. Thêm một lớp Java
Mở dự án Android Studio của bạn, sau đó điều hướng đến Project > app > src > main > java. Tại đây, hãy nhấp chuột phải vào thư mục chứa package name của bạn, chọn New > Java Class và đặt tên cho lớp mới. Nếu bạn không thấy tùy chọn Java Class, hãy đảm bảo Android Studio đã hoàn tất việc tải xuống các plugin cần thiết.
3. Viết mã Java
Trong lớp Java mới được tạo, hãy viết một số phương thức đơn giản để thử nghiệm. Ví dụ:
package com.example.mylibrary;
public class MyLibrary {
public int getIntValue() {
return 42;
}
public String getStringValue() {
return "Xin chào từ Java!";
}
public void setStringValue(String value) {
// Logic xử lý chuỗi ở đây
System.out.println("Đã nhận giá trị: " + value);
}
}
4. Cấu hình Gradle để tạo JAR
Đây là bước quan trọng nhất để tạo file JAR.
- Mở file
build.gradle(thường nằm trong thư mụcapp). - Thay đổi plugin từ
com.android.applicationthànhcom.android.library. - Thêm một task tùy chỉnh vào file Gradle để xây dựng JAR. Dưới cùng file, thêm đoạn mã sau:
// Thêm vào cuối file build.gradle (Module: app)
apply plugin: 'com.android.library'
// Task để tạo file JAR
task buildJar(type: Copy) {
// Xóa file JAR cũ nếu tồn tại
delete 'build/libs/MyLibrary.jar'
// Nguồn file để sao chép
from('build/intermediates/aar_main_jar/release/')
// Thư mục đích
into('build/libs/')
// Chỉ sao chép file classes.jar
include('classes.jar')
// Đổi tên file thành MyLibrary.jar
rename('classes.jar', 'MyLibrary.jar')
}
// Đảm bảo task buildJar chạy sau khi build project
buildJar.dependsOn(build)
5. Xây dựng file JAR
- Sau khi chỉnh sửa, hãy nhấp vào nút Sync Now ở góc trên bên phải để Gradle đồng bộ các thay đổi.
- Sau khi đồng bộ xong, hãy mở tab Gradle (thường ở bên phải), điều hướng đến
app > Tasks > othervà nhấp đúp vào taskbuildJarđể chạy. - Khi task hoàn tất, bạn sẽ thấy một thư mục
buildđược tạo ra. Trong đó, đi đếnbuild > libs, bạn sẽ tìm thấy fileMyLibrary.jar.
6. Sử dụng JAR trong Unity
- Tạo một dự án Unity mới (hoặc mở dự án hiện có).
- Tạo một thư mục
Pluginstrong thư mụcAssets, sau đó tạo một thư mục conAndroidbên trong. - Sao chép file
MyLibrary.jarmà bạn vừa tạo vào thư mụcAssets/Plugins/Androidtrong dự án Unity.
7. Viết script C# để gọi mã Java
Bây giờ, hãy tạo một script C# trong Unity để tương tác với thư viện Java của bạn. Tạo một script mới, ví dụ JarBridge.cs, và thêm mã sau:
using UnityEngine;
using UnityEngine.UI;
public class JarBridge : MonoBehaviour
{
public Text outputText;
private AndroidJavaObject javaObject;
void Start()
{
// Tên đối tượng Java được tạo từ package name và tên lớp
javaObject = new AndroidJavaObject("com.example.mylibrary.MyLibrary");
}
public void GetIntValue()
{
int value = javaObject.Call<int>("getIntValue");
outputText.text = "Giá trị số: " + value;
Debug.Log("Giá trị số nhận được: " + value);
}
public void GetStringValue()
{
string value = javaObject.Call<string>("getStringValue");
outputText.text = "Giá trị chuỗi: " + value;
Debug.Log("Giá trị chuỗi nhận được: " + value);
}
public void SetStringValue()
{
javaObject.Call<void>("setStringValue", "Chào Unity!");
outputText.text = "Đã gửi chuỗi đến Java.";
Debug.Log("Đã gửi chuỗi đến Java.");
}
}
Để kiểm tra, hãy đính kèm script này vào một GameObject trong cảnh Unity và kéo một thành phần Text vào trường outputText. Khi chạy trên một thiết bị Android, các nút sẽ gọi các phương thức Java tương ứng.