Friday, June 13, 2014

Sử dụng các hàm Log của Android trên Unity3D

Trong bài viết này mình sẽ hướng dẫn sử dụng các chức năng log (Log.v, Log.e, Log.d, Log.i, Log.w) của Android gọi trực tiếp từ Unity3D.

Bình thường, khi code trên Android chúng ta hay sử dụng các chức năng như Toast, Log.e, Log.v... để debug game. Tuy nhiên, khi sử dụng Unity3D để build game Android thì ta khó có thể truy cập và sử dụng các hàm này. Các hàm debug của Unity3D hầu như chỉ có thể log trên editor, để config và sử dụng các hàm này trên Android khá là khó khăn.

Do đó, mình đã viết 1 plugins chuyên thực hiện việc log trên Android. 
Nguyên tắc cơ bản là bên code Unity3D sẽ gọi ngược sang bên code Android và gọi các hàm log của Android.

Để sử dụng các chức năng Android log trong Unity3D, ta cần thực hiện các bước sau:

- Bước 1: chuẩn bị, mục tiêu của bước này là để game có thể sẵn sàng build trên Android
  • Trong Player Settings, switch platform sang Android
  • Thiết lập các thuộc tính liên quan đến Bundle ID, company...

- Bước 2: download và import gói sau

- Bước 3: Sử dụng các hàm sau
  • Để hiện Toast: AndroidLog.showToast ("Test show toast");
  • Để log trong Logcat: tham số đầu tiên là tag, tham số thứ hai là message
    • Log error: AndroidLog.logError ("Test Logging", "Log error");
    • Log debug: AndroidLog.logDebug ("Test Logging", "Log debug");
    • Log warning: AndroidLog.logWarning ("Test Logging", "Log warning");
    • Log info: AndroidLog.logInfo ("Test Logging", "Log info");
    • Log verbose: AndroidLog.logVerbose ("Test Logging", "Log verbose"); 

Kết quả: mở Logcat và xem thành quả. Mình đã test trên nhiều dòng máy khác nhau và chưa phát hiện ra lỗi gì (đã test trên Galaxy S1 => Galaxy S4, Sky, HK phone...)

Lưu ý: plugins này được tối ưu cho tính dễ sử dụng nên hiệu năng không cao. Khi build game để phát hành nên bỏ hết các hàm thực hiện việc logging này đi.

Yêu cầu của plugins: 
  • Unity3D 4.x trở lên
  • Android 2.3.1 trở lên

No comments:

Post a Comment