Giúp trò chơi Unity của bạn trở nên tuyệt vời trên mọi hệ số hình dạng

Trong thị trường trò chơi đầy cạnh tranh ngày nay, điều quan trọng hơn bao giờ hết là phải tiếp cận tiếp cận nhiều khán giả nhất có thể. Bằng cách phát triển trò chơi cho nhiều hệ số hình dạng, chẳng hạn như điện thoại, máy tính bảng, thiết bị có thể gập lại và máy tính để bàn, bạn có thể tận dụng một nhóm lớn hơn người chơi tiềm năng và tăng cơ hội thành công.

Hỗ trợ khả năng đổi kích thước màn hình

Trò chơi của bạn phải có thể đổi kích thước để hỗ trợ nhiều kiểu dáng. Khả năng đổi kích thước cho phép trò chơi của bạn hỗ trợ cấu hình thiết bị như dọc và hướng ngang, chế độ nhiều cửa sổ cũng như trạng thái gập và mở thiết bị có thể gập lại.

Nếu trò chơi của bạn không hỗ trợ tất cả các kích thước cửa sổ và cấu hình hướng, nền tảng sẽ tạo hiệu ứng hòm thư cho trò chơi của bạn chế độ tương thích và nếu cần thiết sẽ nhắc người chơi trước khi chuyển sang một cấu hình không được hỗ trợ.

Hình 1. Hộp thoại về khả năng tương thích của cấu hình.

Để biết thêm thông tin, hãy xem Hỗ trợ khả năng đổi kích thước màn hình lớn.

Chế độ nhiều cửa sổ

Hình 2. Các giao diện người dùng khác nhau trên máy tính và thiết bị có thể gập lại ở tư thế trên mặt bàn.

Nhiều cửa sổ chế độ bật nhiều ứng dụng để chia sẻ cùng một màn hình cùng lúc. Các ứng dụng có thể cạnh nhau hoặc một ứng dụng phía trên ứng dụng kia (chế độ chia đôi màn hình), một ứng dụng trong một cửa sổ nhỏ phủ lên các ứng dụng khác (chế độ hình trong hình) hoặc từng ứng dụng có thể di chuyển riêng biệt, cửa sổ có thể đổi kích thước (chế độ hình dạng tuỳ ý).

Để tránh chuyển sang chế độ tương thích khi trò chơi của bạn chạy ở chế độ nhiều cửa sổ, hãy khai báo rằng trò chơi của bạn có thể xử lý khả năng đổi kích thước bằng cách bật tuỳ chọn Cửa sổ có thể đổi kích thước trong phần Chế độ cài đặt bản dựng Unity.

Hình 3. Các chế độ cài đặt Độ phân giải và Bản trình bày của Unity dành cho Android.

Vết cắt trên màn hình

Vết cắt trên màn hình là một vùng trên một số thiết bị kéo dài vào bề mặt màn hình. Các vết cắt mang lại khả năng hiển thị tràn viền trải nghiệm người dùng đồng thời vẫn cung cấp không gian cho các cảm biến quan trọng ở phía trước thiết bị.

Hình 4. Vết cắt trên màn hình.

Để mang lại trải nghiệm tràn viền cho trò chơi của bạn, hãy định cấu hình trò chơi để nhận biết khung hình an toàn. Truy vấn safeArea API của Unity để lấy vùng an toàn trên màn hình tính bằng pixel, đồng thời điều chỉnh giao diện người dùng và trải nghiệm người dùng của trò chơi cho phù hợp, đặc biệt là đối với các yếu tố mà người dùng có thể tương tác.

Kiểu có thể gập lại

Thiết bị có thể gập lại có thể ở nhiều trạng thái gập, chẳng hạn như FLAT (mở hoàn toàn) hoặc HALF_OPENED (giữa mở hoàn toàn và đóng hoàn toàn). Khi một thiết bị ở trong Trạng thái HALF_OPENED, có thể có hai tư thế, tuỳ thuộc vào hướng của gập: tư thế trên mặt bàn (gập ngang) và tư thế sách (gập theo chiều dọc). Sử dụng tư thế trên mặt bàn để tăng mức độ nhập vai và tương tác của người chơi.

Hình 5. Trò chơi ở tư thế trên mặt bàn với góc nhìn chính ở phần dọc của màn hình, các chế độ điều khiển ở phần ngang.

Để triển khai tư thế trên mặt bàn, mở rộng hoạt động Unity mặc định, sau đó dùng thư viện bố cục Jetpack WindowManager để giúp trò chơi nhận biết chế độ gập.

Dự án mẫu Unity

Dự án mẫu Unity dựa trên dự án minh hoạ Unity 2D Bị mất mật mã. Dự án mẫu minh hoạ cách hỗ trợ khả năng đổi kích thước màn hình lớn trong Unity. Màn hình lớn và thiết bị có thể gập lại yêu cầu thực hiện một số thay đổi đối với tuỳ chọn bản dựng Unity, cũng như cần cân nhắc về bố cục máy ảnh cũng như canvas giao diện người dùng.

Hiện bạn có thể tải xuống ngay dự án mẫu. Dự án chứa 4 cảnh khác nhau:

  • Gốc: Hỗ trợ tính năng cơ bản có thể đổi kích thước
  • Cố định: Giống như "Gốc" cảnh nhưng thích ứng với nhiều tỷ lệ khung hình và tránh vết cắt trên màn hình
  • HingeAware: Tương tự như "Anchoring" cảnh, nhưng hỗ trợ tư thế trên mặt bàn
  • Trình đơn chính: Bắt đầu cảnh, cho phép di chuyển đến các cảnh khác và hỗ trợ đầy đủ mọi hướng thiết bị, gập, mở và tư thế trên mặt bàn

Khi xây dựng cho Android, hãy chọn tất cả cảnh và đặt "Trình đơn chính" cảnh làm cảnh bắt đầu.

Hình 6. "Trình đơn chính" cảnh này cho phép bạn chuyển đến các cảnh khác ở tư thế trên mặt bàn.

Bắt đầu bằng tính năng hỗ trợ cửa sổ có thể thay đổi kích thước

Triển khai tính năng hỗ trợ nhiều kích thước màn hình và tỷ lệ khung hình trong Ứng dụng màn hình lớn của Android giúp đảm bảo trò chơi hoặc ứng dụng của bạn hiển thị chính xác trên các thiết bị khác nhau. Cho phép trò chơi đổi kích thước và thay đổi tỷ lệ khung hình bằng cách đặt thuộc tính Resizable Window (Cửa sổ có thể thay đổi kích thước) trong bản dựng Unity (xem phần "Chế độ nhiều cửa sổ"). Điều chỉnh tỷ lệ khung hình của máy ảnh và canvas cho vừa hơn với màn hình. Xem các chế độ cài đặt dự án trong phần Cài đặt bản dựng và trong Plugins/Android/AndroidManifest.xml. Trải nghiệm toàn màn hình tính năng có thể đổi kích thước trong phần tử "Original" của dự án cảnh.

Hình 7. "Gốc" cảnh hỗ trợ tính năng Cửa sổ có thể thay đổi kích thước.

Trải nghiệm sống động toàn màn hình trong khi xử lý các vết cắt trên màn hình

Cho phép trò chơi sử dụng toàn bộ màn hình để tạo lối chơi sống động để nâng cao trải nghiệm người dùng. Cập nhật neo giao diện người dùng trò chơi và cài đặt camera để tự động điều chỉnh theo kích thước màn hình. Điều này cho phép các thành phần trên giao diện người dùng duy trì vị trí tương ứng với kích thước màn hình.

"Quảng cáo cố định cuối màn hình" cảnh sử dụng CameraAspectLock tập lệnh để phản hồi các thay đổi về cấu hình thiết bị bằng cách của một hoạt động mở rộng (xem Assets/Plugins/Android/LargeScreenPlayableActivity.java). Thuộc tính Unity APIsafeArea được minh hoạ trong SafeZoneAPI tập lệnh liên kết với đối tượng SafeZone bên trong thành phần "Anchoring" cảnh.

Cảnh trò chơi ở chế độ toàn màn hình trên màn hình trong và ngoài của một thiết bị có thể gập lại.
Hình 8. "Neo" cảnh có vết cắt trên màn hình.

Tối ưu hoá cho thiết bị có thể gập lại

Cảnh cuối cùng của dự án mẫu Unity, "HingeAware", chứa một Đối tượng ConfigurationManager phản hồi với nếp gập khác nhau trạng thái của thiết bị mục tiêu thông qua API thư viện Jetpackhoạt động mở rộng (xem Assets/Plugins/Android/LargeScreenPlayableActivity.java). Cảnh sử dụng tập lệnh PanelOnFold để điều khiển giao diện người dùng dựa trên trạng thái gập của thiết bị, ví dụ: hiển thị bảng điều khiển dưới cùng khi thiết bị đang ở tư thế trên mặt bàn và đang điều chỉnh máy ảnh.

Hình 9. "HingeAware" cảnh hỗ trợ tư thế trên mặt bàn.