Hướng dẫn Import Data từ CSV Vào ScriptableObject trong Unity

9:49 01/07/2025

ScriptableObject – một loại asset đặc biệt trong Unity, cho phép bạn lưu trữ và quản lý dữ liệu theo cách gọn gàng, có thể tái sử dụng và dễ dàng điều chỉnh. Trong bài viết này, FPT Polytechnic Tây Nguyên sẽ tìm hiểu cách nhập dữ liệu từ file CSV để tạo tự động các ScriptableObject – giúp quy trình làm game trở nên chuyên nghiệp và tối ưu hơn. 

Khi phát triển game bằng Unity, việc quản lý các thông số như máu, tốc độ di chuyển, sát thương, hay cấp độ cho từng đối tượng là điều không thể thiếu. Tuy nhiên, nếu các thông số này được đặt rải rác trong prefab, việc chỉnh sửa, kiểm soát hoặc mở rộng sẽ trở nên rối rắm và kém hiệu quả. Giải pháp chính là sử dụng ScriptableObject.

Tình huống mẫu: Import dữ liệu nhân vật (Player) từ file CSV

Bước 1: Chuẩn bị dữ liệu:

Tạo data với File Excel, lưu file định dạng csv.

Ví dụ: Tạo file player_data_collection.csv

Bước 2: Tạo class PlayerDataCollection.cs trong Assets/Scripts/Collection chứa lớp PlayerConfig và mảng ScriptableObject chứa lớp PlayerConfig.

Bước 3: Tạo script CsvSerializer.cs trong thư mục Assets/ Editor/ReadCsv và bổ sung code từ link sau: https://github.com/hieuntse/ReadDataCsv/blob/a79481cd57e9ed2f27aa4ac4c0e8804b130b4c1e/Assets/Editor/ReadCsv/CsvSerializer.cs

Bước 4: Tạo folder Utils trong Scripts folder như sau:

Với 2 file, để khai báo các đường dẫn cố định (hằng số):

  1. CollectionUtils.cs

2. ResourcePathUtils.cs

Bước 5: Tạo CsvImport.cs từ Assets/ Editor/ReadCsv folder

Bước 6: Tạo file ResourcesLoadController.cs trong Assets/Scripts/Collection bổ sung code như bên dưới

Bước 7: Đặt file csv vào Assets/Resources/CSV. Khi này, SO sẽ được sinh ra trong folder Resources/ Collection. Như kết quả cuối cùng bên dưới:

Xem video hướng dẫn chi tiết tại đây:

Giảng viên Nguyễn Trung Hiếu
Bộ môn Công nghệ thông tin
FPT Polytechnic Tây Nguyên

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

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