Cách gọi Unity từ Native iOS

Tạo một class kế thừa từ  UnityAppController – giả sử có tên là MyAppCotroller 

sau đó ở dòng dưới cùng có thêm dòng lệnh:

IMPL_APP_CONTROLLER_SUBCLASS(MyAppController)

sau đó trong class MyAppController.m overide hàm và set rootviewController như sau:

- (void)willStartWithViewController:(UIViewController*)controller {

   _rootController = [[UIViewController alloc] init];

   _rootView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

   _rootController.view = _rootView;

   MainViewController *helloVC = [[MainViewController alloc] initWithNibName:nil bundle:nil];

   self.navController =[[UINavigationController alloc]. initWithRootViewController:helloVC];

   [_rootView addSubview:self.navController.view];
}

Unity Resources: Tối ưu dung lượng khi build

Một số phương pháp để giảm kích thước của app khi build

1. Tối ưu lại dung lượng của ảnh và video sử dụng

  • Xem xét lại trong resources những thành phần nào không sử dụng thì xoá khỏi project
  • Những thành phần nào có dung lượng lớn, nếu có thể cần tìm cách giảm dung lượng xuống nhưng vẫn đảm bảo chất lượng
  • Với game 2D thì các ảnh bỏ tuỳ chọn “generate mipmaps”

Trong trường hợp khách hàng gửi design là file sketch, cần tính toán tỉ lệ export để phù hợp với màn hình khách hàng yêu cầu.

Kích thước màn hình trong file sketch thường thiết kế size theo màn hình 375×667 (dọc) nên khi dựng UI với màn hình khác, ví dụ là 1080×1920 thì tỉ lệ export sẽ là: 1080:375 = 2.88.

2. Sử dụng Sprite Packer

  • Đầu tiên cần bật chế độ cho phép Sprite Packer hoạt động.
    Edit -> Project Settings -> Editor và chọn chế độ cho phép Sprite Packer hoạt động.

    Image with no description

  • Mở cửa sổ Sprite Packer: Windown -> Sprite Packer

    Image with no description

  • Chọn những ảnh đơn có liên quan tới nhau để gộp chung vào 1 atlas, đặt cùng tên cho Packing Tag và chọn Apply

    Image with no description

  • Mở cửa sổ Sprite Packer và chọn Pack

    Image with no description

3. Đóng gói resource theo các platform

Trong trường hợp khi thiết kế giao diện mà ở các platform có các phần UI khác nhau, ngoài những phần UI dùng chung thì với những phần UI riêng biệt cho từng platform nên để riêng ra các folder. (ví dụ: Android, ios,..)
Mục đích: Khi build cho nền tảng này thì nén các folder UI của nền tảng khác lại và xoá folder riêng đi, giữ lại file đã nén.
Note: Giữ lại file *.meta của các folder UI đã xoá, khi cần chỉ giải nén các file ở trên ra thì các UI sẽ tự link giống như ban đầu.

Google Analytics trong Unity

  1. Cài đặt Google Analytics cho Unity project:

    Làm theo hướng dẫn của Developer Guide (tài liệu khá là chi tiết cho cả Android và iOS)
    Link developer guide : https://developers.google.com/analytics/devguides/collection/unity/v4/devguide

  2. Các lưu ý cho Google Analytics:

    1. Sử dụng Unity 4, nếu dùng bản GoogleAnalyticsV4 mà không nhận GAv4.prefab thì sử dụng GoogleAnalyticsV3.
    2. Việc sử dụng Google Analytics Log được hướng dẫn đầy đủ trong GA API Reference
      Link API Reference:
      https://developers.google.com/analytics/devguides/collection/unity/v4/reference
    3. Khi dùng bản GA nobitcode, trên project Xcode cần set Enable Bitcode  -> No trong Build Settings.
      GAP_DisableBitcode.png
    4. Có thể add được thêm user cho account Google Analytics.
      GA_UserManager.png
    5. Khi sử dụng cả firebase trong project, cần chú ý việc sử dụng đúng version của play-services trong thư mục Plugin/Android
      Screen Shot 2017-06-22 at 11.50.32.png