Search…

Khởi Tạo Đối Tượng trong Runtime

25/09/20202 min read
Hướng dẫn thao tác khởi tạo đối tượng trong Runtime - thời điểm chạy game với Unity.

Giới thiệu

Trong nhiều trường hợp, việc khởi tạo đối tượng mà không khai báo trước khi chạy chương trình là điều cần thiết. Chẳng hạn khi cần load bản đồ mới vào thế giới game khi người chơi đã vượt qua mức độ hiện tại, không thể load toàn bộ các bản đồ lên bộ nhớ trước vì như thế sẽ tốn kém tài nguyên, giảm hiệu suất của game.

Giải pháp đặt ra là chỉ load những đối tượng cần thiết, khi không sử dụng sẽ giải phóng vùng nhớ để tiết kiệm tài nguyên, các đối tượng chưa sử dụng sẽ được khởi tạo sau trong khi đang chạy chương trình.

Resources folder

Resources là 1 folder đặc biệt của Unity cho phép truy cập các tài nguyên sử dụng trong game thông qua tên và đường dẫn của file, bên cạnh thao tác kéo thả (drag-and-drop) trong Unity Editor.

Resources folder có thể hiểu là Working Directory trong Unity, nếu 1 asset được đặt trong Resources folder, chúng có thể được truy xuất bởi hàm Resources.Load thông qua đường dẫn tương đối đến nó.

Runtime Unity Resources

Load tài nguyên với Resources.Load

Phương thức Load thuộc class Resources nhận vào giá trị là đường dẫn đến vị trí của asset trong project. Nếu asset tồn tại tại đường dẫn, phương thức sẽ trả về asset đó dưới dạng Object.

Ví dụ sau giúp hiểu rõ về cách sử dụng phương thức này cũng như tầm quan trọng của Resources folder:

Khởi tạo đối tượng Runtime trong Unity

Thực hiện load file sfx_stdio_logo.mp3 bằng 1 trong 3 cách như sau:

Object object = Resources.Load("SFX/sfx_stdio_logo");
AudioClip stdioLogo = Resources.Load("SFX/sfx_stdio_logo") as AudioClip;
AudioClip stdioLogo2 = Resource.Load<AudioClip>("SFX/sfx_stdio_logo");
  • Dòng 1: load file âm thanh vào đối tượng object, khi cần sử dụng để gắn vào 1 AudioSource, thực hiện ép kiểu sang AudioClip để sử dụng.
  • Dòng 2: ép kiểu tường minh ngay sau khi tài nguyên đã được load bằng từ khoá as Type, đối tượng sẽ được tự động ép kiểu sang Type và được lưu trữ trong 1 biến cùng kiểu.
  • Dòng 3: đây là cú pháp sử dụng template, do đó nó sẽ trả về đúng đối tượng cần tìm với kiểu dữ liệu cần thiết.

* Tất cả các đường dẫn của asset đều sử dụng dấu / để phân chia các thư mục, đường dẫn sử dụng dấu \ sẽ không hoạt động và không tìm được asset.

Instantiate

Instantiate là hàm được sử dụng để clone 1 đối tượng được xây dựng sẵn, đối tượng này có thể là 1 GameObject, component hay là các tài nguyên được load trực tiếp từ Resources.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024