Biến asset thành addressable
Tóm tắt
Trong hướng dẫn này, bạn sẽ cài đặt package Addressables và học cách truy cập giao diện của nó.
Kết thúc hướng dẫn này bạn sẽ:
- Biết cách mở giao diện Addressables trong Unity Editor.
- Nhận diện asset có thể biến thành addressable
- Biết cách để đánh dấu asset là addressable
- Chỉnh sửa địa chỉ của asset
Tổng quan
Loady Dungeons là một game mobile mà người chơi điều khiển một con khủng long đi tìm chìa khóa trong rương và tìm cách để mở một cánh của để sang màn tiếp theo.
Loady Dungeons hiện đang sử dụng các tham chiếu trực tiếp và thư mục Resources xuyên suốt toàn bộ dự án. Nhiệm vụ của bạn là áp dụng hệ thống Addressables để có thể giảm thiểu dung lượng tải về, dễ dàng cập nhật nội dung suốt vòng đời của game và cho phép người dùng thêm hoặc cập nhật nội dung trong quá trình chơi.
Trong hướng dẫn này bạn sẽ bắt đầu áp dụng hệ thống Addressables vào dự án.
Trước khi bắt đầu
Điều kiện tiên quyết
Để hoàn thành khóa học này bạn cần có kinh nghiệm lập trình với Unity. Bên cạnh tất cả các khái niệm đã được đề cập trong lộ trình Junior Programmer thì kiến thức về event handlers và lập trình bất đồng bộ cũng rất hữu ích. Chúng tôi sẽ bổ sung các tài liệu tham khảo để bạn học thêm nếu cần thiết.
Chúng tôi cũng khuyến khích bạn hoàn thành lộ trình Creative Core, hoặc có kinh nghiệm tương đương để làm quen với asset trong Unity - những asset mà bạn sẽ áp dụng hệ thống Addressables
Cập nhật Unity Hub
Trước khi thiết lập dự án Unity, hãy cân nhắc cập nhật Unity Hub lên phiên bản mới nhất. Nếu bạn đang sử dụng một phiên bản cũ của Unity Hub bạn có thể thấy khác biệt giữa tài liệu hướng dẫn và giao diện thực tế
Thiết lập dự án Unity
Để thiết lập Unity và dự án cho quá trình học tập. Hãy làm theo các hướng dẫn sau:
- Cài Unity 2022.2.9 hoặc mới hơn nếu bạn chưa có
- Tải xuống file zip được đính kèm. (Tải xuống)
- Giải nén file vừa tải về vào một thư mục mới. Hãy lưu nó tại một vị trí phù hợp vì chúng ta sẽ dùng nó xuyên suốt khóa học.
- Thêm dự án trong Unity Hub. Bạn có thể thấy cảnh báo phiên bản Unity không phù hợp. Nhưng đừng lo bạn có thể upgrade project với bất kỳ phiển bản Unity nào từ 2022.2.9 trở lên, kể cả các bản 2022 LTS.
- Mở dụ án
- Cài đặt package Addressables phiên bản 1.21.8 trở lên.
Addressable là gì?
Khi bạn đánh dấu một asset là addressable, Unity sẽ tạo ra một địa chỉ. Địa chỉ này là một chuỗi định danh mà hệ thống Addressables liên kết với vị trí của asset đó, bất kể asset đó đang nằm trên thiết bị cùng với bản build hay trên một hệ thống phân phối (CDN).
Trong scripts, bạn có thể sử dụng địa chỉ của asset thay vì phải tự theo dõi vị trí của nó. Nhờ đó, bạn không cần phải viết code để chỉ định where mà chỉ cần chỉ định what. Bằng cách này, nếu vị trí của tài nguyên thay đổi, bạn sẽ không phải viết lại code.
Mặc dù tốt nhất địa chỉ nên là độc nhất, nhưng bạn không bị bắt buộc phải làm vậy. Bạn sẽ được học nhiều cách để tham chiếu đến asset addressable mà không cần địa chỉ độc nhất. Nhưng việc giữ chúng là độc nhất sẽ giúp dự án của bạn ngăn nắp và dễ quản lý hơn.
Tạo addressables trên Inspector
Nhấn nút PLAY và làm quen với Loady Dungeons.
Hiện tại, Loady Dungeons được thiết lập để cho phép người chơi lựa chọn chiếc mũ mà họ thích cho nhân vật khủng long, nhưng nó đang sử dụng hệ thống Resources cũ. Để giúp game trở nên tinh gọn và nhanh hơn, bạn sẽ tiến hành cập nhật dự án để chuyển sang sử dụng Addressables
Hãy cùng biến những chiếc mũ này thành addressable thông qua Inspector
- Trong cửa số Project, hãy chỏ tới Assets > Resources
Hãy nhớ rằng Resources là một thư mục đặc biệt trong Unity. Nó là một phần của hệ thống Resources cũ dành cho việc quản lý tài nguyên động. Khi bạn build game ở trạng thái hiện tại, bất kỳ asset nào nằm trong thư mục Resources cũng sẽ được đưa vào một indexed file riêng biệt. Bạn đang tiến hành cấu hình lại để chuyển sang sử dụng Addressables. - Chọn prefab Hat00 và nhìn sang cửa sổ Inspector.
- Trong cửa sổ Inspector, bật thuộc tính Addressable. (Nếu không thấy, hãy kiểm tra lại Package Manager xem bạn đã cài package Addressable chưa).
- Khi này sẽ có một cửa sổ hiện lên hỏi bạn có muốn chuyển prefab này sang một thư mục khác không? Hãy chọn Yes. Vì nếu không thì việc tạo addressable sẽ trở nên vô ích.
- Bạn cũng có thể chọn nhiều prefab cùng lúc và bật Addressable để tiết kiệm thời gian.
Mở cửa sổ Addressables Groups
Bạn cũng có thể biến asset thành addressable bằng cách kéo thả prefab vào cửa số Addressables Groups
Để mở cửa sổ này. Trong Unity Editor, Windows > Asset Management > Addressables > Groups. Vì bạn đã tạo một vài addressable nên bạn sẽ thấy nó như thế này.
Prefab sẽ tự động được đặt trong Default Local Group. Bạn sẽ còn tiếp tục tìm hiểu thêm về của sổ Addressables Groups ở các phần sau của khóa học này.
Tạo addressable trong cửa sổ Addressables Groups
Tiếp theo, chúng ta sẽ biến logo game thành addressable.
Để xem asset này. Bạn có thể chạy game từ scene MainMenu (trong folder Assets > Scenes). Bạn sẽ thấy ngay logo của game.
Vì logo còn nằm trong folder Resources nên nó được load lên bởi hệ thống Resources
Để biến logo này thành addressable với cửa sổ Addressables Groups thay vì Inspector. Bạn có thể làm như sau:
- Đi tới thư mục Resources
- Kéo file LoadyDungeonsLogo vào Default Local Group trong của sổ Addressables Groups
- Bạn cũng sẽ thấy của sổ Move From Resources. Hãy chọn Yes
LoadyDungeonsLogo giờ đã là một phần của Default Local Group, và trong Inspector bạn cũng sẽ thấy thuộc tính Addressable đã được bật.
Để kiểm tra xem bạn đã làm đúng chưa. Hãy play game lại từ scene MainMenu. Logo không hiển thị được nữa vì hệ thống Resources không còn tìm thấy nó nữa.
Thay đổi địa chỉ của asset
Địa chỉ của asset là một string ID có nhiệm vụ định danh addressable asset. Bạn có thể sử dụng địa chỉ này như một key để load asset thông qua code.
Chỉnh sửa địa chỉ thông qua Inspector
Bạn có thể chỉnh sửa địa chỉ thông qua của sổ Inspector sau khi bạn bật addressable.
- Tìm đến prefab Hat00. Vừa nãy nó đã được chuyển tới thư mục Assets > Resources_moved.
- Trong cửa sổ Inspector, thay đổi địa chỉ thành tên bất kỳ bạn muốn. Ở đây tôi để là Hat_BunnyEars
- Giờ hãy tìm đến scene Assets > Scenes > LoadingScene nhưng đừng mở nó.
- Trong Inspector, hãy bật addressable với scene này.
- Thay đổi địa chỉ thành LoadingScene
Bạn sẽ thấy sự thay đổi trên cả 2 cửa sổ Addressables Groups bà Inspector.
Chỉnh sửa địa chỉ thông qua Addressables Groups
Một cách khác là bạn có thể thay đổi địa chỉ này thông qua của sổ Addressables Groups. Trong cửa sổ Addressables Groups chuột phải vào prefab mà bạn muốn thay đổi, chọn Change Address.
Một khi game đã được phát hành trên chợ, bạn nên tránh việc thay đổi địa chỉ của asset. Bản thân các asset có thể thay đổi thường xuyên trong suốt vòng đời dự án nhưng bất kỳ địa chỉ nào đại diện cho một asset đều nên được giữ nguyên. Điều này giúp bạn tránh việc phải sửa đổi source code nếu chỉ có nội dung asset thay đổi, bởi vì việc thay đổi source code bắt buộc cúng ta phải phát hành lại ứng dụng trên chợ.
Dọn dẹp
Mặc dù không bắt buộc nhưng bây giờ bạn có thể làm 2 việc
- Đổi tên thư mục Resources_moved. Vì Resources_moved chỉ là cái tên tạm mà Unity dùng. Bạn có thể đổi thành bất cứ thứ gì bạn muốn.
- Xóa thư mục Resources vì bây giờ nó đã trống.
Tiếp theo
Trong bài này bạn đã biết cách chuyển asset sang hệ thống Addressable. Trong bài sau bạn sẽ học cách load asset lên thông qua Addressable API.