Sử dụng Design Pattern mẫu Singleton trong Unity để tạo các đối tượng xây “một lần dùng nhiều lần”

21:47 23/12/2023

Singleton là một Design Pattern, nó đảm bảo mỗi class sẽ chỉ có duy nhất một instance, đồng thời cung cấp một điểm truy cập toàn cục cho Instance này. Trong Unity, Singleton cũng dùng để quản lý các đối tượng mà ta muốn khởi tạo 1 lần và dùng chung cho toàn bộ game. Cùng tìm hiểu trong bài viết này nhé! 

Design Pattern mẫu Singleton trong Unity

Ví dụ ta muốn quản lý âm thanh, việc này ta chỉ cần tạo ra một đối tượng quản lý âm thanh và dùng chung cho toàn bộ chương trình. Đôi khi, chúng ta muốn một  biến quản lý trạng thái game ở tất cả các màn chơi hoặc đơn giản là ta muốn tạo 1 biến mà dùng chung cho tất cả các màn chơi, VD: level, điểm….

Tóm lại lợi ích của Singleton trong Unity là ta có thể tạo một đối tượng quản lý có thể truy cập nhiều nơi nhưng chỉ được khởi tạo 1 lần.

Minh họa Singleton

Để minh họa Singleton ta sẽ tạo ra 2 scene như hình bên dưới, khi ta nhấn nút “Qua scene 2” thì sẽ nhảy qua “Scene_2” và text trên “Scene_2” tăng lên 1.

Ngược lại trên “Scene_2” khi ta nhấn vào nút “Qua scene 1” thì sẽ quay về “Scene_1” và text cũng sẽ tăng thêm 1. Tương tự vậy mỗi lần nhấn nút sẽ chuyển scene và tăng text lên 1.

Bài toán cho ta thấy rằng 2 scene như biến để hiện lên text, phải dùng chung thì mới tăng lên khi ta chuyển sang scene khác được.

Bước 1: Tạo 2 scene như hình ở trên.

Bước 2: Tạo 1 script mới tên “DungChung” rồi viết như sau:

Bước 3: Tạo script mới tên “ManagerScene” và viết như sau:

Bước 4: Trên scene “Scene_1”, tạo 1 gameobject mới, sửa tên nó thành “DungChung” rồi add script “DungChung” vào cho nó. Bước này là bước quan trọng để vừa vào game thì khởi tạo nó.

Bước 5: Tạo 1 gameobject mới, gán script “ManagerScene” cho nó. Sau đó kéo Text (điểm số) và đối số “Texthienthi”.

Bước 6: Qua “Scene_2” cũng làm tương tự, tạo gameobject mới, gán script “ManagerScene”, kéo text vào đối số “Texthienthi”, (Không cần làm cho “DungChung” vì nó đã khởi tạo ở “Scene_1” rồi).

Bước 7: Chạy chương trình, nhấn nút để chuyển qua lại giữa 2 scene và thấy giá trị text bên dưới tang liên tục. Tức là 2 Scene dùng chung biến “diem” trong DungChung.

Cuối cùng, sau những hướng dẫn trên, hy vọng các bạn sinh viên hiểu hơn về Singleton và cách demo công cụ này. Chúc các bạn thành công!

Giảng viên Nguyễn Đỗ Anh Khoa
Bộ môn Công nghệ thông tin
Trường Cao đẳng FPT Polytechnic cơ sở TP HCM

Cùng chuyên mục

Đăng Kí học Fpoly 2024

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.