[Hướng Dẫn] Tạo cơ sở dữ liệu (Database) với Prefab
[chapter]Giới thiệu[/chapter]
Unity không hỗ trợ cơ sở dữ liệu Database nên mình xin hướng dẫn mọi người cách thiết lập một Database cho game.
Lưu ý, Database này thuộc loại dữ liệu chung, ví dụ thông tin toàn bộ hero, item trong game, còn các dữ liệu riêng như số lượng bình HP mà người chơi đang sở hữu, hay các hero đang có trong party thì mình sẽ hướng dẫn ở một bài khác, và mình quy ước gọi dữ liệu riêng đó là Data để phân biệt với Database.
Nguyên tắc lưu trữ của mình là lưu mọi thông tin trong một Prefab, rồi khi sử dụng ta sẽ load Prefab đó lên và truy xuất Database từ nó.
Với cách lưu trữ này, ta sẽ có các ưu điểm sau:
Trước tiên bạn hãy download về, dùng Unity mở project lên rồi xem hướng dẫn bên dưới.
Bấm vào đây để tải về
[chapter]Hướng dẫn[/chapter]
Demo này tạo một Database đơn giản chứa thông tin các Item.
Trong project có chứa:
Script:
Demo mình làm đơn giản nhất có thể, mọi người xem, nếu có gì thắc mắc cứ hỏi tại đây nhé.
Và mình cũng nói luôn, đây là một phần trong các bài hướng dẫn tạo Inventory do một mem yêu cầu :D
Unity không hỗ trợ cơ sở dữ liệu Database nên mình xin hướng dẫn mọi người cách thiết lập một Database cho game.
Lưu ý, Database này thuộc loại dữ liệu chung, ví dụ thông tin toàn bộ hero, item trong game, còn các dữ liệu riêng như số lượng bình HP mà người chơi đang sở hữu, hay các hero đang có trong party thì mình sẽ hướng dẫn ở một bài khác, và mình quy ước gọi dữ liệu riêng đó là Data để phân biệt với Database.
Nguyên tắc lưu trữ của mình là lưu mọi thông tin trong một Prefab, rồi khi sử dụng ta sẽ load Prefab đó lên và truy xuất Database từ nó.
Với cách lưu trữ này, ta sẽ có các ưu điểm sau:
- Có thể lưu trữ mọi loại dữ liệu.
- Có thể lưu các Object chứa Script hoặc component khác.
- Có thễ lưu trữ Object chứa Object con.
- Giao diện trực quan.
- Truy xuất Database dễ dàng.
- ...
Trước tiên bạn hãy download về, dùng Unity mở project lên rồi xem hướng dẫn bên dưới.
Bấm vào đây để tải về
[chapter]Hướng dẫn[/chapter]
Demo này tạo một Database đơn giản chứa thông tin các Item.
Trong project có chứa:
Script:
- ItemData: Chứa thông tin của một Item, gồm có ID, tên Item, Object hình ảnh Item.
- ItemDataScript: Chứa ItemData, dùng để gắn vào một Object, vì ItemData không phải Behavior nên không thể gắn vào được.
- SceneController: Một ví dụ vể truy xuất Database và xuất lên màn hình Console.
- IconSet: File hình ảnh của từng Item.
- DatabaseItem: Chứa Database của toàn bộ Item.
- SceneDatabase: Scene tạm dùng để tạo Prefab chứa Database, khi xuất game ta không xuất Scene này nhé.
- SceneGame: Scene chính, trong Scene này mình chỉ làm một việc là xuất toàn bộ dữ liệu của Database lên Console.
Demo mình làm đơn giản nhất có thể, mọi người xem, nếu có gì thắc mắc cứ hỏi tại đây nhé.
Và mình cũng nói luôn, đây là một phần trong các bài hướng dẫn tạo Inventory do một mem yêu cầu :D
Comments
Thật ra nói đúng hơn thì cái "Map" (đúng ra là cái Scene) đó chỉ dùng để thiết kế Database, sau đó mình lưu lại dưới dạng Prefab, lưu xong, có Prefab rồi thì cái "Map" đó không cần dùng làm gì nữa (nên khi xuất game ta không cần tới nó).
Tuy nhiên Unity chỉ cho hiển thị các Object con cấp 1 của Prefab, còn các Object con ở cấp 2 trở lên sẽ không được hiển thị, nên việc thiết kế ở một Scene riêng giúp ta dễ dàng nhìn thấy các Object cấp 2 trở lên, để dễ dàng sửa chửa, thay đổi. Sau khi thay đổi xong thì chỉ việc nhấn Apply để nó lưu trở lại vào Prefab :D
THAM GIA GROUP CỦA TTC TRÊN FACEBOOK
À, cái này dùng Unity mới nhất là 5.1 nha :P
THAM GIA GROUP CỦA TTC TRÊN FACEBOOK
@kumuzu nâng cấp Unity lên 5.1 đi, nó sẽ tự động update dự án hiện tại lên 5.1 nên không sợ mất dữ liệu đâu :D
THAM GIA GROUP CỦA TTC TRÊN FACEBOOK
THAM GIA GROUP CỦA TTC TRÊN FACEBOOK