Cấu trúc và thứ tự Compile của một project Unity

Dong Ho · about 5 mins read

Cấu trúc của một project Unity

|- ROOT
|--Assets
|	|--Editor
|	|--Standard Assets
|	|--StreamingAssets
|	|--Resources
|	|--<NameOfGame>
|	|	|--Animations
|	|	|--Art
|	|	|	|--UI
|	|	|--Audio
|	|	|	|--UI
|	|	|--Prefabs
|	|	|	|--UI
|	|	|--Scenes
|	|	|--Scripts
|	|	|	|--UI
|	|	|	|--Utils
|	|	|--Presets
|--Library
|--Editor
|--Gizmos
|--Logs
|--Packages
|--ProjectSettings
|--UserSettings

Một project Unity là một tập hợp các tệp và thư mục chứa tất cả các thành phần cần thiết để tạo một trò chơi điện tử.

  • Assets: Thư mục này chứa tất cả các tài sản của trò chơi, chẳng hạn như mô hình 3D, âm thanh, hình ảnh và kịch bản. Nội dung của cửa sổ Project trong Editor tương ứng trực tiếp với nội dung của thư mục Assets.
  • Editor: thêm chức năng cho Unity trong quá trình phát triển nhưng không có sẵn trong các bản dựng khi Runtime. Các tập lệnh trong thư mục Editor chạy dưới dạng tập lệnh Editor, không phải tập lệnh thời gian chạy (Runtime). Có thể đặt nhiều thư mục Editor ở bất kỳ đâu. Vị trí chính xác của thư mục Editor ảnh hưởng đến thời gian biên dịch các tập lệnh của nó so với các tập lệnh khác. Lưu ý: Unity không cho phép các components có nguồn gốc từ MonoBehaviour được gán cho GameObjects nếu các tập lệnh nằm trong thư mục Editor.
  • Gizmos: Gizmos cho phép bạn thêm đồ họa vào Scene để giúp trực quan hóa các chi tiết thiết kế mà không thể nhìn thấy được. Hàm Gizmos.DrawIcon đặt một biểu tượng trong Scene để hoạt động như một điểm đánh dấu cho một đối tượng hoặc vị trí đặc biệt. Bạn phải đặt file ảnh dùng để vẽ biểu tượng này vào thư mục có tên Gizmos để hàm DrawIcon xác định vị trí của nó. Chỉ có thể có một thư mục Gizmos và nó phải được đặt trong thư mục gốc của Dự án.
  • Resources: Bạn có thể tải Nội dung theo yêu cầu (Assets on-demand) từ tập lệnh thay vì tạo phiên bản Nội dung trong Cảnh để sử dụng trong trò chơi. Bạn thực hiện việc này bằng cách đặt Assets vào thư mục có tên Resources. Tải các Assets này bằng cách sử dụng hàm Resources.Load. Có thể đặt nhiều thư mục Resources ở bất kỳ đâu.
  • Standard Assets: Khi bạn import một Standard Asset package, Unity sẽ đặt tài sản đó vào thư mục có tên Standard Assets. Chỉ có thể có một thư mục Standard Assets và bạn phải để nó trong thư mục gốc của dự án.
  • StreamingAssets
  • Android Asset Packs
  • Android Library Projects
  • Hidden Assets: Trong quá trình import, Unity bỏ qua các tệp và thư mục sau trong thư mục Assets (hoặc thư mục con trong đó):
    • Các thư mục ẩn.
    • Các Files và folders BẮT ĐẦU với ‘.’.
    • Các Files và folders KẾT THÚC với ‘~’.
    • Các Files và folders có tên “cvs”.
    • Các Files với phần mở rộng là .tmp.

Cách tổ chức một project Unity

Cách tốt nhất để tổ chức một project Unity là tạo các thư mục con để phân loại các tài sản. Ví dụ: bạn có thể tạo các thư mục con cho mô hình 3D, kết cấu, âm thanh và kịch bản.

Tổ chức tốt sẽ giúp bạn dễ dàng tìm thấy các tài sản mà bạn cần. Nó cũng sẽ giúp bạn quản lý project của mình một cách hiệu quả hơn.

Một số mẹo tổ chức project Unity:

  • Sử dụng các tên thư mục mô tả nội dung của chúng.
  • Sử dụng các tên tài sản mô tả mục đích của chúng.
  • Sử dụng các mô hình và kết cấu có kích thước phù hợp với nhu cầu của bạn.
  • Sử dụng các kịch bản ngắn gọn và dễ hiểu.

Thứ tự Compile

Unity biên dịch tập lệnh trong bốn giai đoạn riêng biệt, dựa trên vị trí của tệp tập lệnh trong cấu trúc thư mục dự án. Unity tạo một tệp dự án CSharp riêng (.csproj) và một tập hợp được xác định trước cho từng giai đoạn. (Nếu không có tập lệnh nào đủ điều kiện cho giai đoạn biên dịch, Unity sẽ không tạo tệp dự án hoặc tập hợp tương ứng.)

Thứ tự biên dịch rất quan trọng khi tập lệnh tham chiếu đến một lớp được biên dịch ở một giai đoạn khác (và do đó nằm trong một assembly khác). Quy tắc cơ bản là bất cứ thứ gì được biên dịch trong một giai đoạn sau giai đoạn hiện tại đều không thể được tham chiếu. Mọi thứ được biên soạn trong giai đoạn hiện tại hoặc giai đoạn trước đó đều có sẵn đầy đủ.

PhaseAssembly nameScript files
1Assembly-CSharp-firstpassRuntime scripts trong các thư mục có tên Standard Assets, Pro Standard Assets và Plugins
2Assembly-CSharp-Editor-firstpassEditor scripts ở bất kỳ đâu trong các thư mục top-level có tên là Standard Assets, Pro Standard Assets và Plugins
3Assembly-CSharpTất cả các tập lệnh khác không nằm trong thư mục có tên Editor.
4Assembly-CSharp-EditorTất cả các tập lệnh còn lại (những tập lệnh nằm trong thư mục có tên Editor).
Outline

history cached

play_arrow arrow_right_alt

update skip_next

create close

settings arrow_downward

×

Memo

...
×

Under Maintenance