README.md
Tổng quan
Tính năng
- Tạo pages, modals, tabs và chuyển động của chúng một cách dễ dàng và linh hoạt.
- Quản lý screen và bộ nhớ từ khi load cho đến khi destroy.
- Quy trình tách biệt với các animator cho các hoạt ảnh chuyển đổi màn hình phức tạp.
- Thư viện được phân tách tốt không có các chức năng phụ (ví dụ: thư viện GUI, máy trạng thái).
- Và các tính năng tiêu chuẩn như history stacking và ngăn chặn nhấp chuột trong quá trình chuyển đổi.
Demo
Bạn có làm theo những bước sau để chơi thử
- Clone repo
- Mở và chạy scene DemoEntryPoint
Cài đặt
Yêu cầu
- Unity 2021.3 hoặc cao hơn
- uGUI (không hỗ trợ UIElements)
Cài đặt
Unity Package Manager
- Mở Package Manager (Window > Package Manager).
- Nhấn nút (+) > Add package from git URL.
- Nhập
https://github.com/Haruma-K/UnityScreenNavigator.git?path=/Assets/UnityScreenNavigatorvà nhấn Add.
Chỉnh sủa file Manifest
Mở Packages/manifest.json và thêm dòng sau:
{
"dependencies": {
"com.harumak.unityscreennavigator": "https://github.com/Haruma-K/UnityScreenNavigator.git?path=/Assets/UnityScreenNavigator"
}
}Nếu muốn cài phiên bản khác thì thêm số phiên bản vào cuối đường link (VD: #1.0.0) https://github.com/Haruma-K/UnityScreenNavigator.git?path=/Assets/UnityScreenNavigator#1.0.0
Chuyển màn hình cơ bản
Khái niệm về màn hình (screens) và chuyển tiếp (transitions)
USN chia màn hình (screens) thành 3 loại: Page, Modal và Sheet.
- Page là một màn hình được chuyển đổi theo trình tự. (Nhìn giống các screen)
- Modal là một màn hình được stack trong một của window. (Nhìn giống popup)
- Sheet được sừ dụng giống như các tab.
- Các screen có thể được lồng vào nhau.
Tạo page
Để tạo page. Đầu tiên, tạo Page Container bằng cách gắn component PageContainer vào một GameObject bên trong Canvas. Pages sẽ hiển thị fit với container nên hãy điều chỉnh kích thước cho phù hợp.
Tiếp theo, tạo Page bằng cách tạo gameObject mới (tương ứng với một page) bên trong PageContainer và thêm component Page. Đặt GameObject này trong thư mục Resource với tên bất kỳ.
Và gọi PageContainer.Push() với đường dẫn Resources để hiển thị page.
Ví dụ cho push page được đặt tại Assets/Resources/ExamplePage.prefab.
PageContainer pageContainer;
// Push the page named "ExamplePage".
var handle = pageContainer.Push("ExamplePage", true);
// Wait for the transition to finish.
yield return handle;
//await handle.Task; // You can also use await.
//handle.OnTerminate += () => { }; // You can also use callback.Gọi PageContainer.Pop() để deactive page và hiển thị page trước đó.
PageContainer pageContainer;
// Pop the active page.
var handle = pageContainer.Pop(true);
// Wait for the transition to finish.
yield return handle;Nếu muốn bỏ qua một trang nhất định khi gọi Pop(). có thể tắt stacking history bằng cách sử dụng tham số tuỳ chỉnh.




