2015-10-16 15 views
21

Có ai có kinh nghiệm nào về việc kết hợp React Native và Unity không? Tôi đang tìm kiếm để bắt đầu một dự án Unity đó là UI nặng và tôi đang nghĩ về việc sử dụng React Native để tận dụng khả năng giao diện người dùng của nó trên thiết bị di động và web.Phản ứng nguyên bản với Unity

Tôi tò mò về quy trình làm việc của phương pháp như vậy.

+2

bạn đã thử điều này (thành công)? – swalkner

+0

Tôi cũng tò mò về điều này! – leMale

Trả lời

3

Tôi không chắc chắn về cách trò chơi Unity được xây dựng cho iOS, nếu nó sử dụng Cocoa Touch để hiển thị các lớp cốt lõi của nó.

Nếu có, và bạn có quyền truy cập hoặc khả năng hiển thị UIViewController thì bạn có thể hiển thị ứng dụng React Native của mình. Điều duy nhất bạn sẽ phải tạo điều kiện là thiết lập giao tiếp giữa hai ứng dụng.

Dưới đây là ví dụ về hiển thị Thành phần giao diện người dùng gốc bên trong ứng dụng React Native có thể hữu ích. http://moduscreate.com/leverage-existing-ios-views-react-native-app/

7

Cuối cùng, sau rất nhiều thử nghiệm được quản lý để thực hiện việc này. Đây là các bước.

  • 1) Sử dụng link, xuất dự án Android cho Gradle này. Chọn Gradle trong cửa sổ Build Settings và đánh dấu vào hộp kiểm Export Project. Nhấp vào Xuất và chọn thư mục đích.
  • 2) Nhập thư mục đã tạo trong Android studio. Chọn ok bất cứ khi nào được nhắc. Trong quá trình này, bạn sẽ gặp phải các sự cố sau đây
  • 2a) Không thể đồng bộ hóa Gradle do vấn đề org.gradle.api.internal.tasks. Giải quyết sử dụng này link
  • 3) Tạo Phản ứng Native App sử dụng này link
  • 4) Bắt đầu tích hợp Android xuất khẩu thư mục bên trong tạo ra phản ứng ứng dụng có nguồn gốc sử dụng link này. Không nâng cấp Gradle làm Android studio sẽ hỏi bạn nhiều lần. Bạn sẽ gặp phải các vấn đề sau. Không đi qua "Kiểm tra tích hợp" cho đến khi bạn kết thúc với # 5 ở đây.
  • 4a) Trong khi định cấu hình maven, hãy sử dụng url này cho url maven "$ rootDir /../ node_modules/react-native/android".
  • 4b) Trong khi cấu hình maven, nếu bạn gặp vấn đề liên quan đến javax.inject: javax.inject "Sử dụng link
  • 4c này) Bạn cũng có thể gặp phải lỗi này." Xung đột với sự phụ thuộc 'com.google.code. Bạn có thể giải quyết điều này link
  • 4d) Trong phần Tích hợp mã của liên kết này, tập trung vào phần sau: Nếu bạn đang sử dụng bộ khởi động cho React Native, thay thế chuỗi "HelloWorld" bằng một tệp trong tệp index.android.js của bạn (đây là đối số đầu tiên của phương thức AppRegistry.registerComponent()). Ở đây bạn phải thay thế bằng tên dự án
  • 5) Trước khi đi qua phần "Kiểm tra tích hợp của bạn", bạn phải thêm mã để gọi MyReactActivity từ UnityActivity. Điều này link sẽ giúp.
  • 6) Đi qua phần "Kiểm tra tích hợp của bạn" của liên kết được cung cấp trong # 4. Bạn có thể gặp phải các vấn đề sau.
  • 6a) không thể tải tập lệnh từ chỉ mục asset.android.bundle. Sử dụng số này link.
  • 6b) không thể kết nối với máy chủ phát triển trên Android. Sử dụng số này link.
0

Tôi cũng tò mò và đã tạo một dự án ví dụ về cách thực hiện việc này cho Android: https://github.com/marijnz/unity-react.

Nếu đây là một lựa chọn khả thi, ít nhất là phụ thuộc vào:

  • bao lâu dự án sẽ được chạy, cả hai Phản ứng và Unity phải được cập nhật và điều này được thể khó khăn hơn theo thời gian.
  • Số lượng sdk/phụ thuộc của dự án.
  • Nếu bạn muốn thực hiện iOS.

Nói chung, tôi có thể tránh đi theo cách này. Mặc dù ví dụ có vẻ khá đơn giản bây giờ, đó là một nỗi đau để có được điều đó (như câu trả lời của Shaunak đã gợi ý;))

Các vấn đề liên quan