Phát triển bằng Unity cho Android XR

Hướng dẫn này cung cấp thông tin tổng quan về việc phát triển bằng Unity cho Android XR. Android XR hoạt động với các công cụ và tính năng quen thuộc mà bạn mong đợi từ Unity. Vì tính năng hỗ trợ Android XR của Unity được xây dựng dựa trên OpenXR, nên nhiều tính năng được mô tả trong phần Tổng quan về OpenXR cũng được hỗ trợ trong Unity.

Hãy làm theo hướng dẫn này để tìm hiểu về:

  • Hỗ trợ Unity cho Android XR
    • Kiến thức cơ bản về Unity XR
    • Phát triển và phát hành ứng dụng cho Android XR
    • Gói Unity dành cho Android XR
      • Unity OpenXR: Gói Android XR
      • Tiện ích Android XR cho Unity
      • Các tính năng và điều cần cân nhắc về khả năng tương thích
  • Nhập và tương tác

Hỗ trợ Unity cho Android XR

Khi tạo ứng dụng Unity cho Android XR, bạn có thể tận dụng các công cụ và chức năng thực tế hỗn hợp trong Unity 6. Bộ công cụ này bao gồm các mẫu thực tế hỗn hợp sử dụng Bộ công cụ tương tác XR, AR FoundationTrình bổ trợ OpenXR để giúp bạn bắt đầu nhanh chóng. Khi xây dựng ứng dụng bằng Unity cho Android XR, bạn nên sử dụng Quy trình kết xuất phổ quát (URP) làm quy trình kết xuất và Vulkan làm API Đồ hoạ. Các tính năng này cho phép bạn tận dụng một số tính năng đồ hoạ mới hơn của Unity, chỉ được hỗ trợ bằng Vulkan. Xem hướng dẫn thiết lập dự án để biết thêm thông tin về cách định cấu hình các chế độ cài đặt này.

Kiến thức cơ bản về Unity XR

Nếu mới làm quen với Unity hoặc phát triển XR, bạn có thể tham khảo Hướng dẫn XR của Unity để hiểu các khái niệm và quy trình làm việc cơ bản về XR. Hướng dẫn XR chứa thông tin về:

Phát triển và phát hành ứng dụng cho Android

Unity cung cấp tài liệu chuyên sâu về cách phát triển, tạo và phát hành ứng dụng cho Android, bao gồm các chủ đề như Quyền trên Android trong Unity, Cài đặt bản dựng Android, Tạo ứng dụng cho AndroidPhân phối cho Google Play.

Gói Unity cho Android XR

Có hai gói hỗ trợ việc tạo ứng dụng Unity cho Android XR. Cả hai gói này đều là trình bổ trợ của nhà cung cấp XR, bạn có thể bật các trình bổ trợ này thông qua gói Quản lý trình bổ trợ XR của Unity. Trình quản lý trình bổ trợ XR thêm chế độ Cài đặt dự án để quản lý và hỗ trợ tải, khởi chạy, cài đặt và hỗ trợ bản dựng cho trình bổ trợ XR. Để cho phép ứng dụng của bạn thực thi các tính năng OpenXR trong thời gian chạy, dự án phải bật các tính năng này thông qua trình quản lý trình bổ trợ.

Hình ảnh này cho thấy ví dụ về nơi bạn có thể bật các nhóm tính năng này thông qua trình chỉnh sửa của Unity.

Ví dụ về màn hình quản lý trình bổ trợ unity xr

Unity OpenXR Android XR

Gói Unity OpenXR Android XR là một Trình bổ trợ XR để thêm tính năng hỗ trợ Android XR vào Unity. Trình bổ trợ XR này cung cấp phần lớn tính năng hỗ trợ Android XR cho Unity, đồng thời cho phép hỗ trợ thiết bị Android XR cho các dự án AR Foundation. AR Foundation được thiết kế cho các nhà phát triển muốn tạo trải nghiệm thực tế tăng cường hoặc thực tế hỗn hợp. Thư viện này cung cấp giao diện cho các tính năng AR, nhưng không tự triển khai bất kỳ tính năng nào. Gói Unity OpenXR Android XR cung cấp cách triển khai. Để bắt đầu sử dụng gói này, hãy xem hướng dẫn sử dụng gói, trong đó có hướng dẫn Bắt đầu sử dụng.

Tiện ích Android XR cho Unity

Tiện ích Android XR cho Unity bổ sung cho gói Android XR Unity OpenXR và bao gồm các tính năng bổ sung để giúp bạn xây dựng trải nghiệm sống động. Bạn có thể sử dụng riêng hoặc kết hợp với gói Unity OpenXR Android XR.

Để bắt đầu sử dụng gói này, hãy làm theo hướng dẫn thiết lập dự án hoặc hướng dẫn nhanh để nhập Tiện ích Android XR cho Unity.

Các tính năng và điều cần cân nhắc về khả năng tương thích

Bảng sau đây mô tả các tính năng mà Unity OpenXR hỗ trợ: gói Android XR và Tiện ích Android XR cho gói Unity. Bạn có thể sử dụng bảng này để xác định gói nào chứa các tính năng mà bạn cần và mọi vấn đề cần cân nhắc về khả năng tương thích.

Tính năng

Unity OpenXR: Chuỗi tính năng Android XR

Tiện ích Android XR cho chuỗi tính năng Unity

Trường hợp sử dụng và hành vi dự kiến

Phiên AR

Android XR: Phiên AR

  • Chế độ cài đặt tính năng bao gồm Tối ưu hoá việc loại bỏ vùng đệm (Vulkan)

Android XR (Tiện ích): Quản lý phiên

  • Các chế độ cài đặt tính năng bao gồm Lấy mẫu phụ (Vulkan) và URP SpaceWarp (Vulkan)

Để sử dụng các tính năng của một trong hai gói này, bạn phải bật tính năng Phiên AR cho gói đó. Bạn có thể bật cả hai bộ tính năng cùng lúc; các tính năng riêng lẻ sẽ xử lý xung đột tương ứng.

Theo dõi thiết bị

không áp dụng

không áp dụng

Tính năng theo dõi thiết bị được dùng để theo dõi vị trí và độ xoay của thiết bị trong không gian thực. GameObject XR Origin tự động xử lý việc theo dõi thiết bị và chuyển đổi các đối tượng có thể theo dõi thành hệ toạ độ của Unity thông qua thành phần XROrigin và hệ phân cấp GameObject có Camera và TrackedPoseDriver.

Máy ảnh

Android XR: Máy ảnh AR

không áp dụng

Tính năng này hỗ trợ tính năng ước tính ánh sáng và truyền toàn màn hình.

Phát hiện mặt phẳng

Android XR: Chế độ AR Plane

Android XR (Tiện ích): Mặt phẳng

Hai tính năng này giống hệt nhau; hãy sử dụng một trong hai. Android XR (Tiện ích): Thêm mặt phẳng để nhà phát triển có thể sử dụng các tính năng Android XR (Tiện ích): Theo dõi đối tượng và neo cố định mà không cần có phần phụ thuộc trên gói Android XR Unity OpenXR. Trong tương lai, Android XR (Tiện ích): Mặt phẳng sẽ bị xoá và thay vào đó là Android XR: Neo AR.

Theo dõi đối tượng

không áp dụng

Android XR (Tiện ích): Theo dõi đối tượng

Tính năng này hỗ trợ phát hiện và theo dõi các đối tượng trong môi trường thực, được sử dụng kết hợp với thư viện đối tượng tham chiếu.

Theo dõi khuôn mặt

Android XR: AR Face

  • Chỉ XR_ANDROID_avatar_eyes
  • Không có tính năng theo dõi khuôn mặt

Android XR: Theo dõi khuôn mặt

  • XR_ANDROID_face_tracking

Tính năng hỗ trợ mắt hình đại diện được cung cấp thông qua tính năng Android XR: AR Face. Truy cập vào biểu cảm khuôn mặt của người dùng thông qua tính năng Theo dõi khuôn mặt trong Android XR. Bạn có thể sử dụng cả hai tính năng này cùng lúc nếu muốn.

Phương thức truyền tia

Android XR: AR Raycast

  • Điểm neo của mặt phẳng
  • Điểm neo độ sâu

không áp dụng

Tính năng này cho phép bạn chiếu một tia và tính toán giao điểm giữa tia đó với các đối tượng có thể theo dõi trên mặt phẳng hoặc các đối tượng có thể theo dõi độ sâu được phát hiện trong môi trường thực tế.

Mốc

Android XR: Điểm neo AR

Android XR (Tiện ích): Neo

  • Chế độ cài đặt tính năng bao gồm cả tính năng liên tục.

Cả hai tính năng đều hỗ trợ neo không gian và neo mặt phẳng; hãy sử dụng một trong hai tính năng này. Đối với neo cố định, hãy sử dụng Android XR (Tiện ích): Neo. Trong tương lai, Android XR (Tiện ích): Điểm neo sẽ bị xoá và tất cả tính năng Điểm neo sẽ nằm trong Android XR: Điểm neo AR.

Che khuất

Android XR: Chặn AR

  • Độ sâu môi trường

không áp dụng

Tính năng che khuất cho phép nội dung thực tế hỗn hợp trong ứng dụng của bạn xuất hiện bị ẩn hoặc bị che khuất một phần phía sau các đối tượng trong môi trường thực.

Chỉ số hiệu suất

Chỉ số hiệu suất Android XR

không áp dụng

Sử dụng tính năng này để truy cập vào các chỉ số hiệu suất cho thiết bị Android XR.

Lớp thành phần

Hỗ trợ lớp thành phần (bắt buộc phải có Trình bổ trợ OpenXR và Lớp thành phần XR)

Android XR: Lớp thành phần truyền qua

  • XR_ANDROID_composition_layer_passthrough_mesh

Sử dụng tính năng Hỗ trợ lớp kết hợp của Unity để tạo các lớp kết hợp cơ bản (ví dụ: hình tứ giác, hình trụ, hình chiếu). Android XR: Bạn có thể sử dụng Lớp kết hợp truyền tải để tạo một lớp truyền tải có lưới tuỳ chỉnh, đọc từ GameObject của Unity.

Kết xuất foveated

Kết xuất foveated (bắt buộc phải có Trình bổ trợ OpenXR)

  • Hỗ trợ kết xuất foveated theo dõi mắt: khu vực có độ phân giải cao hơn được căn giữa nơi người dùng đang nhìn để người dùng ít nhận thấy hơn

Foveation (Cũ)

Tính năng kết xuất foveated cho phép tăng tốc độ kết xuất bằng cách giảm độ phân giải của các khu vực trong tầm nhìn ngoại vi của người dùng. Tính năng kết xuất foveated của Unity chỉ được hỗ trợ cho các ứng dụng sử dụng URP và Vulkan. Tính năng Foveation (Legacy) (Tập trung vào tâm điểm nhìn (Cũ)) trong Tiện ích Android XR cho Unity cũng hỗ trợ BiRP và GLES. Bạn nên sử dụng tính năng kết xuất foveated của Unity khi có thể. Xin lưu ý rằng bạn nên sử dụng cả URP và Vulkan khi xây dựng cho Android XR.

Không gian tham chiếu không giới hạn

không áp dụng

Android XR: Không gian tham chiếu không giới hạn

Tính năng này đặt chế độ nguồn gốc theo dõi XRInputSubsystem thành Không giới hạn. Không giới hạn cho biết XRInputSubsystem theo dõi tất cả InputDevices liên quan đến một neo thế giới có thể thay đổi.

Chế độ kết hợp môi trường

không áp dụng

Chế độ hoà trộn môi trường

Tính năng này cho phép bạn đặt Chế độ kết hợp môi trường XR. Chế độ này kiểm soát cách hình ảnh ảo kết hợp với môi trường thực tế khi tính năng truyền xuyên qua được bật.

Nhập và tương tác

Android XR hỗ trợ phương thức nhập tự nhiên đa phương thức.

Ngoài tính năng theo dõi mắt và tay, các thiết bị ngoại vi như bộ điều khiển 6DoF, chuột và bàn phím thực cũng được hỗ trợ. Điều này có nghĩa là các ứng dụng dành cho Android XR dự kiến sẽ hỗ trợ tương tác bằng tay và không thể giả định rằng tất cả thiết bị đều có tay điều khiển.

Hồ sơ tương tác

Unity sử dụng hồ sơ tương tác để quản lý cách ứng dụng XR giao tiếp với nhiều thiết bị và nền tảng XR. Các hồ sơ này thiết lập đầu vào và đầu ra dự kiến cho nhiều cấu hình phần cứng, đảm bảo khả năng tương thích và chức năng nhất quán trên nhiều nền tảng. Bằng cách bật hồ sơ tương tác, bạn có thể đảm bảo rằng ứng dụng XR hoạt động chính xác với nhiều thiết bị, duy trì việc ánh xạ đầu vào nhất quán và có quyền truy cập vào các tính năng XR cụ thể. Cách đặt hồ sơ tương tác:

  1. Mở cửa sổ Project Settings (Cài đặt dự án) (trình đơn: Edit > Project Settings (Chỉnh sửa > Cài đặt dự án)).
  2. Nhấp vào Quản lý trình bổ trợ XR để mở rộng phần trình bổ trợ (nếu cần).
  3. Chọn OpenXR trong danh sách trình bổ trợ XR.
  4. Trong phần Hồ sơ tương tác, hãy chọn nút + để thêm hồ sơ.
  5. Chọn hồ sơ cần thêm trong danh sách.

Tương tác bằng tay

Tính năng tương tác bằng tay (XR_EXT_hand_interaction) do Trình bổ trợ OpenXR cung cấp và bạn có thể hiển thị bố cục thiết bị trong Hệ thống đầu vào Unity bằng cách bật Hồ sơ tương tác bằng tay. Sử dụng hồ sơ tương tác này cho hoạt động nhập bằng tay được hỗ trợ bởi 4 tư thế hành động do OpenXR xác định: "chụm", "chọt", "nhắm" và "nắm". Nếu bạn cần thêm chức năng tương tác bằng tay hoặc theo dõi chuyển động tay, hãy tham khảo phần Tay XR trên trang này.

Tương tác bằng ánh mắt

Tiện ích OpenXR cung cấp tính năng tương tác bằng ánh mắt (XR_EXT_eye_gaze_interaction) và bạn có thể sử dụng bố cục này để truy xuất dữ liệu về tư thế mắt (vị trí và độ xoay) mà tiện ích trả về. Đọc thêm về hoạt động tương tác bằng ánh mắt trong hướng dẫn về Đầu vào OpenXR.

Tương tác với tay điều khiển

Android XR hỗ trợ Hồ sơ tay điều khiển Oculus Touch cho các tay điều khiển 6DoF. Cả hai hồ sơ này đều do Trình bổ trợ OpenXR cung cấp.

Tương tác bằng chuột

Hồ sơ tương tác bằng chuột Android XR (XR_ANDROID_mouse_interaction) do Tiện ích Android XR cho Unity cung cấp. Lớp này hiển thị bố cục thiết bị <AndroidXRMouse> trong Hệ thống đầu vào Unity.

Tương tác với tư thế lòng bàn tay

Trình bổ trợ OpenXR hỗ trợ Tương tác bằng tư thế lòng bàn tay (XR_EXT_palm_pose), hiển thị bố cục <PalmPose> trong Hệ thống đầu vào Unity. Tư thế lòng bàn tay không phải là giải pháp thay thế cho các tiện ích hoặc gói thực hiện tính năng theo dõi chuyển động tay cho các trường hợp sử dụng phức tạp hơn; thay vào đó, bạn có thể dùng tư thế lòng bàn tay để đặt nội dung hình ảnh dành riêng cho ứng dụng, chẳng hạn như hình ảnh đại diện. Tư thế lòng bàn tay bao gồm cả vị trí và hướng của lòng bàn tay.

Bàn tay XR

Gói XR Hands cho phép bạn truy cập vào dữ liệu theo dõi chuyển động tay (XR_EXT_hand_trackingXR_FB_hand_tracking_aim) và cung cấp một trình bao bọc để chuyển đổi dữ liệu khớp tay từ tính năng theo dõi chuyển động tay sang tư thế đầu vào. Để sử dụng các tính năng do gói XR Hands cung cấp, hãy bật tính năng Hệ thống con theo dõi cử chỉ tayMeta Hand Tracking Aim OpenXR.

Ví dụ minh hoạ cách bật tính năng theo dõi cử chỉ tay

Gói tay XR có thể hữu ích nếu bạn cần tư thế tay hoặc dữ liệu khớp tay chi tiết hơn hoặc khi bạn cần xử lý các cử chỉ tuỳ chỉnh.

Để biết thêm thông tin chi tiết, hãy xem tài liệu của Unity về cách thiết lập XR Hands trong dự án của bạn

Chọn cách kết xuất bàn tay

Android XR hỗ trợ hai cách kết xuất bàn tay: lưới bàn tay và trình trực quan hoá prefab.

Lưới thủ công

Gói Android XR Unity chứa tính năng Lưới tay (Hand Mesh) cung cấp quyền truy cập vào XR_ANDROID_hand_mesh extension. Tính năng Lưới tay cung cấp lưới cho bàn tay của người dùng. Lưới bàn tay chứa các đỉnh của tam giác đại diện cho hình dạng của bàn tay. Tính năng này được dùng để cung cấp một lưới được cá nhân hoá thể hiện hình dạng thực tế của bàn tay người dùng để tạo hình ảnh trực quan.

XR Hands prefab

Gói XR Hands chứa một mẫu có tên là Hands visualizer (Trình trực quan hoá bàn tay). Mẫu này chứa bàn tay trái và phải được lập trình đầy đủ để hiển thị hình ảnh bàn tay của người dùng phù hợp với ngữ cảnh.

Cử chỉ hệ thống

Android XR có một cử chỉ hệ thống để mở trình đơn cho phép người dùng quay lại, mở trình chạy hoặc xem thông tin tổng quan về các ứng dụng đang chạy. Người dùng có thể kích hoạt trình đơn hệ thống này bằng cách dùng thao tác chụm bằng tay thuận.

Khi người dùng đang tương tác với trình đơn điều hướng của hệ thống, ứng dụng sẽ chỉ phản hồi các sự kiện theo dõi chuyển động đầu. Gói XR Hands có thể phát hiện thời điểm người dùng thực hiện các thao tác cụ thể, chẳng hạn như tương tác với trình đơn điều hướng hệ thống này. Việc kiểm tra AimFlags SystemGesture và DominantHand sẽ cho bạn biết thời điểm thực hiện hành động hệ thống này. Để biết thêm thông tin về AimFlags, hãy tham khảo tài liệu về Enum MetaAimFlags của Unity.

Bộ công cụ tương tác XR

Gói Bộ công cụ tương tác XR là một hệ thống tương tác cấp cao, dựa trên thành phần để tạo trải nghiệm thực tế ảo và thực tế tăng cường. Thư viện này cung cấp một khung cho phép tương tác 3D và giao diện người dùng từ các sự kiện đầu vào Unity. API này hỗ trợ các tác vụ tương tác, bao gồm cả phản hồi xúc giác, phản hồi hình ảnh và di chuyển.