TL;DR
- Đã có sẵn: Unity CLI là một tệp nhị phân unity độc lập giúp quản lý và tương tác với các trình chỉnh sửa, mô-đun, dự án và xác thực ngay từ dòng lệnh. Không cần giao diện người dùng (UI); cài đặt thông qua dòng lệnh.
- Được thiết kế cho tự động hóa: hỗ trợ đầu ra JSON/TSV có cấu trúc, mã thoát rõ ràng, cài đặt không cần tương tác và xác thực bằng tài khoản dịch vụ dành cho CI.
- Cũng ra mắt hôm nay: gói thử nghiệm com.unity.pipeline cho phép CLI điều khiển Trình chỉnh sửa đang chạy hoặc bản dựng Player dành cho phát triển thông qua API cục bộ. Bạn có thể khai báo các lệnh của riêng mình bằng thuộc tính [CliCommand].
- unity command eval chạy mã C# trực tiếp trong Trình chỉnh sửa hoặc Player đang chạy và trả về kết quả mà không cần biên dịch lại ở cấp dự án hay tải lại miền ứng dụng.
- Khi kết hợp với nhau, các tính năng này cho phép các tác nhân AI vận hành Unity: quan sát dự án đang chạy, thực hiện thao tác trên dự án và xác minh kết quả.
- Nếu muốn xem video tổng quan về Unity CLI, bạn có thể xem tại đây.
Ngày càng có nhiều hoạt động phát triển được thực hiện qua dòng lệnh: trong các tập lệnh, quy trình CI và ngày càng phổ biến hơn là do các tác nhân AI đảm nhiệm. Giờ đây, Unity đã sẵn sàng đồng hành cùng bạn ngay tại đó. Unity CLI đưa toàn bộ khả năng vận hành Unity lên dòng lệnh ở mọi cấp độ: cài đặt và quản lý Trình chỉnh sửa chỉ bằng một tệp nhị phân duy nhất, điều khiển Trình chỉnh sửa đang chạy thông qua tập lệnh, thậm chí thực thi mã C# trực tiếp trong dự án mà không cần biên dịch lại. Tất cả được tích hợp trong một lệnh unity duy nhất, nhanh chóng, lớp sau mở rộng khả năng của lớp trước: CLI quản lý Unity, gói Pipeline điều khiển Unity, còn eval cho phép thực thi mã bên trong Unity. Cả CLI và gói Pipeline hiện đều có sẵn để sử dụng.
Trước khi đi sâu vào từng tính năng, hãy cùng xem những gì có thể thực hiện được khi kết hợp tất cả các tính năng này với nhau:
Trong đoạn clip dài 25 giây này, lập trình viên giao cho tác nhân AI một báo cáo lỗi bằng tiếng Anh đơn giản: “đôi khi nhân vật trong game bị rơi xuyên qua sàn”. Tác nhân AI sử dụng lệnh unity command eval để kiểm tra cảnh đang chạy, phát hiện collider (thành phần xác định vùng va chạm) bị vô hiệu hóa khi chạy, kích hoạt lại collider đó, rồi vào lại chế độ Play để xác nhận lỗi đã được khắc phục, quan sát trò chơi đang chạy, trực tiếp thao tác và tự xác minh kết quả, không cần sao chép và dán đầu ra từ cửa sổ bảng điều khiển.
Unity CLI là gì
CLI được cung cấp dưới dạng một tệp nhị phân độc lập, tích hợp đầy đủ mọi thành phần cần thiết. Không cần cài đặt thêm thư viện phụ thuộc. Quá trình cài đặt sẽ tự động thêm Unity CLI vào biến môi trường PATH. Bạn chỉ cần nhập lệnh unity và cập nhật tại chỗ bằng lệnh unity upgrade. Ngoài việc quản lý trình chỉnh sửa và dự án, CLI còn hỗ trợ mô-đun và xác thực, nên máy mới không cần cài thêm gì khác.
Vì là tệp nhị phân chạy trực tiếp, CLI khởi động rất nhanh, trong khi phương thức chạy không giao diện của Unity Hub trước đây (-- --headless) mất nhiều thời gian hơn đáng kể. Sự chênh lệch về thời gian này sẽ tích lũy đáng kể khi một tập lệnh hoặc tác nhân AI thực hiện hàng chục lệnh gọi trong mỗi tác vụ.
Bắt đầu sử dụng
Cài đặt bằng trình quản lý gói của nền tảng bạn:
# macOS or Linux
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash
# Windows
$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex(Lưu ý: Hỗ trợ các trình quản lý gói phổ biến như brew, winget và apt sẽ sớm được bổ sung. Tham khảo tài liệu CLI để cập nhật mới nhất.)
Khám phá các tính năng hiện có:
unity --helpCài đặt trình chỉnh sửa cùng các mô-đun bạn cần chỉ với một dòng lệnh:
unity install 6000.2.10f1 -m android ios webglSau đó, các lệnh sẽ đúng như bạn mong đợi: unity editors để xem những gì đã cài đặt, unity open để mở dự án với trình chỉnh sửa phù hợp và unity auth login để đăng nhập. Chưa biết phiên bản Unity có những mã mô-đun nào? Lệnh unity modules list 6000.2.10f1 sẽ liệt kê đầy đủ cho bạn.
Được thiết kế cho tự động hóa
CLI được thiết kế để hoạt động trong môi trường tự động hóa, không chỉ phục vụ tương tác trên dòng lệnh. Mỗi lệnh đều có thể xuất dữ liệu có cấu trúc để bạn chuyển trực tiếp đến các công cụ của mình:
unity editors --format json
unity editors --format tsvLỗi sẽ chuyển đến stderr, kết quả được xuất ra stdout và mã thoát tuân theo quy ước đơn giản (0 là thành công, 1 là lỗi, 130 là tác vụ đã bị hủy), nên có thể dễ dàng kiểm soát lỗi trong quy trình tự động hóa.
Để cài đặt hoàn toàn tự động, hãy bỏ qua tất cả các lời nhắc xác nhận:
unity install 6000.2.10f1 -m android ios --accept-eula --yesTrên máy chủ dựng không giao diện, CLI sẽ xác thực bằng tài khoản dịch vụ thông qua các biến môi trường. Không cần mở trình duyệt, không cần thao tác thủ công. Và unity doctor chẩn đoán các vấn đề về môi trường, xác thực và cấu hình.
Giao tiếp với Trình chỉnh sửa
Quản lý cài đặt chỉ là một nửa câu chuyện. Unity CLI còn có thể điều khiển Trình chỉnh sửa đang chạy.
Khi thêm vào dự án, com.unity.pipeline cho phép Trình chỉnh sửa đang chạy nhận lệnh từ CLI ngay trên máy của bạn. Unity CLI tương thích với Unity 6.0 LTS trở lên, biến Trình chỉnh sửa thành mục tiêu tự động hóa có thể lập trình cho các tập lệnh, tác vụ CI và công cụ AI tác nhân.
Chỉ cần một lệnh duy nhất để thêm gói này vào dự án:
unity pipeline installBạn có thể kiểm tra những dự án nào đã cài đặt gói này bằng lệnh unity pipeline list. Sau khi cài đặt gói này, bạn có thể thực thi các lệnh đã đăng ký trên Trình chỉnh sửa được kết nối (hoặc thậm chí Player đang chạy) trực tiếp từ dòng lệnh:
# List the commands a connected Editor exposes
unity command
# Run one of them
unity command <command-name>Các lệnh này không bị giới hạn trong một tập hợp cố định. Bạn có thể biến bất kỳ phương thức tĩnh nào trong dự án thành một lệnh bằng cách thêm thuộc tính [CliCommand] và thuộc tính [CliArg] vào các tham số của nó:
using Unity.Pipeline.Commands;
using UnityEngine;
public static class MyPipelineCommands
{
[CliCommand("greet", "Log a greeting and return its length")]
public static int Greet(
[CliArg("name", "Who to greet", Required = true)] string name)
{
Debug.Log($"Hello, {name}!");
return name.Length;
}
}Gói này sẽ tự động phát hiện mà không cần bước đăng ký. Lệnh unity command greet --name World sẽ chạy lệnh đó trên Trình chỉnh sửa đã kết nối và trả về kết quả.
Gói Pipeline hiện đã có sẵn để sử dụng. Gói hiện đang trong giai đoạn thử nghiệm, nên hãy lưu ý gói có thể tiếp tục được thay đổi. Gói này cho phép bạn tự động hóa những công việc từng cần con người thao tác trong Trình chỉnh sửa: kích hoạt nhập liệu, chạy kiểm thử, sử dụng công cụ tùy chỉnh.
Gói không chỉ dừng lại ở Trình chỉnh sửa. Thêm thành phần thời gian chạy của gói này vào bản dựng dành cho phát triển và game đang chạy của bạn sẽ cung cấp cùng loại API như vậy. Trỏ CLI đến Player đó bằng lệnh unity command --runtime để lấy nhật ký trực tiếp, truy vấn trạng thái thời gian chạy hoặc tải lại mã nóng trong một bản dựng đang chạy. Tính năng này chỉ hoạt động trên localhost và mặc định tắt (chỉ dành cho các bản dựng phục vụ phát triển và kiểm thử QA, tuyệt đối không dùng cho sản xuất). Tuy nhiên, tính năng cho phép biến một Player đang chạy thành đối tượng có thể được điều khiển thông qua tập lệnh, hệ thống kiểm thử hoặc tác nhân AI ngay trong phiên chạy thực tế.
Unity CLI<->Trình chỉnh sửa đang chạy thông qua com.unity.pipeline
Thực thi tập lệnh C# bằng eval
Các lệnh đã đăng ký đáp ứng những thao tác bạn đã dự liệu. unity command eval sẽ xử lý cả những thao tác nằm ngoài dự kiến của bạn. Lệnh này đánh giá một biểu thức C# bất kỳ ngay bên trong Trình chỉnh sửa đang chạy và trả về kết quả cho bạn: một vòng lặp Đọc – Đánh giá – In kết quả (REPL) tương tác trực tiếp với dự án, ngay từ dòng lệnh.
unity command eval "return Application.version;"
unity command eval "return UnityEditor.EditorApplication.isPlaying;"
unity command eval "var s = Application.dataPath; return s.Length;" --json
unity command eval_file "path/to/script.cs"Mã được biên dịch bằng Roslyn và chạy trên luồng chính của Trình chỉnh sửa, nhờ đó có thể truy cập mọi API của công cụ hoặc Trình chỉnh sửa mà dự án bạn sử dụng. Cờ --runtime tương tự cũng sẽ hướng lệnh đến Player đang chạy. Vì khả năng này có thể được sử dụng theo cả hai chiều, eval được bảo vệ bằng mã thông báo xác thực để đảm bảo an toàn. Không cần lệnh định sẵn, plugin hay biên dịch lại: chỉ cần diễn đạt được câu hỏi bằng C#, bạn có thể truy vấn một phiên Unity đang chạy.
Ưu điểm chính là tốc độ. Quy trình chỉnh sửa và kiểm tra thông thường (chỉnh sửa, biên dịch, khởi động lại) thường mất vài giây; eval trả lời chỉ trong vài mili giây với phiên bản đã chạy sẵn. Qua nhiều lần gọi lệnh mà tập lệnh hoặc tác nhân AI thực hiện trong một phiên làm việc, sự khác biệt đó sẽ tích lũy đáng kể. Đây chính là yếu tố giúp tác nhân AI có được vòng lặp phản hồi nhanh, thay vì phải chờ đợi.

Nền tảng cho phát triển phần mềm với sự hỗ trợ của AI
Những yếu tố này (CLI có thể điều khiển bằng tập lệnh, Trình chỉnh sửa có thể lập trình và REPL trực tiếp) mang lại nhiều giá trị hơn là sự tiện lợi. Chính những tính năng này đã giúp hiện thực hóa bản demo ở đầu bài viết và biến Unity thành môi trường mà tác nhân AI có thể thực sự làm việc.
Trợ lý lập trình AI rất giỏi viết mã và nội dung. Từ trước đến nay, các tác nhân AI thường gặp khó khăn với quy trình xoay quanh việc đó: chạy dự án, kiểm tra lỗi và thử lại. Trợ lý có thể tạo tập lệnh gameplay nhưng không thể chạy kiểm thử để xem tập lệnh có hoạt động không. Unity CLI và lớp Pipeline giúp thu hẹp khoảng cách đó.
Hai đặc tính tạo nên sự khác biệt. Thứ nhất, CLI sử dụng định dạng mà các tác nhân AI có thể dễ dàng xử lý: JSON có cấu trúc cùng quy ước mã thoát nhất quán giúp mô hình nhận được kết quả rõ ràng, dễ phân tích cú pháp, thay vì phải trích xuất văn bản từ cửa sổ bảng điều khiển. Chính những đặc tính giúp CLI hoạt động đáng tin cậy trong quy trình CI, đồng thời là công cụ đáng tin cậy để tác nhân AI gọi và sử dụng.
Thứ hai, gói Pipeline giúp Trình chỉnh sửa có khả năng tự mô tả: chạy lệnh unity command mà không cần thêm tham số, Trình chỉnh sửa đã kết nối sẽ tự liệt kê các thao tác cung cấp. Tác nhân AI sẽ tự khám phá những thao tác có thể thực hiện trong thời gian chạy thay vì dựa vào danh sách cố định. Vì các lệnh được đăng ký bằng thuộc tính đơn giản, đội ngũ của bạn có thể biến các thao tác đặc thù của dự án thành công cụ để tác nhân AI gọi và thực thi. Điều này có nghĩa là mỗi lệnh đã đăng ký đều có thể dễ dàng chuyển thành công cụ theo đúng định dạng mà tác nhân AI đã biết cách gọi và thực thi.
Kết hợp những khả năng này, bạn sẽ có một vòng lặp phản hồi thực sự: trợ lý AI có thể mở dự án, áp dụng thay đổi, chạy kiểm thử, vào chế độ Play để kiểm tra hành vi, đọc kết quả rồi quyết định bước tiếp theo mà không cần con người truyền kết quả qua lại giữa các bước. Đây chính là bước chuyển từ trợ lý chỉ đề xuất sang trợ lý có thể xác minh. Đây cũng là giải pháp phù hợp với các tiêu chuẩn tác nhân AI đang hình thành: mỗi lệnh đã đăng ký đều có thể ánh xạ trực tiếp thành một công cụ mà mô hình hỗ trợ gọi hàm hoặc máy chủ MCP đã biết cách gọi và thực thi.
Không có danh sách cố định về những gì tác nhân AI có thể làm được. Vì eval có thể truy cập mọi API mà dự án bạn sử dụng, nên khả năng của AI tác nhân sẽ tương đương với Unity: từ kết xuất đồ họa, vật lý, hoạt ảnh, cơ sở dữ liệu tài nguyên, Trình chỉnh sửa, cho đến toàn bộ chức năng được bổ sung bằng mã nguồn riêng của bạn. Khả năng này là kết quả của hơn một thập kỷ phát triển API và tác nhân AI có thể tận dụng khả năng này mà không cần tích hợp thêm.

Một kênh duy nhất để truy cập toàn bộ API của Unity
Chúng ta mới chỉ ở giai đoạn khởi đầu của hành trình này, nhưng những thành phần nền tảng cần thiết đã có sẵn ngay hôm nay. Nếu bạn đang phát triển công cụ hỗ trợ AI cho Unity, gói Pipeline chính là điểm khởi đầu phù hợp.
Mối liên hệ với các giải pháp AI của Unity
Nếu bạn sử dụng các công cụ AI của Unity, chẳng hạn như bộ trợ lý AI tích hợp ngay trong Trình chỉnh sửa, thì đây chính là lớp vận hành bên dưới các công cụ đó. AI của Unity đảm nhiệm việc phân tích dự án và quyết định những hành động cần thực hiện. CLI và gói Pipeline chính là lớp thực thi giúp hiện thực hóa các quyết định đó: nhanh chóng, hoạt động cục bộ và được kiểm soát bằng mã thông báo xác thực. Bất kỳ tác nhân AI nào cũng có thể sử dụng cùng một giao diện tương tác này, dù đó là công cụ của chính Unity thông qua máy chủ MCP, trợ lý của bên thứ ba hay tập lệnh do chính bạn viết. AI của Unity chỉ là một trong những thành phần sử dụng nền tảng này, chứ không phải giải pháp thay thế cho chính nền tảng đó.
Hiện đã có sẵn
Unity CLI đã chính thức ra mắt. Cài đặt Unity CLI, chạy lệnh unity --help, rồi tích hợp công cụ này vào tập lệnh dựng hoặc tác vụ CI tiếp theo của bạn, hoặc sử dụng một tác nhân AI để tự động hóa quy trình. Tài liệu hướng dẫn có đầy đủ thông tin về các lệnh. Hãy chia sẻ với chúng tôi những gì bạn đang phát triển; phản hồi của bạn sẽ định hướng cho những bước phát triển tiếp theo.

Tuyên bố miễn trừ trách nhiệm: Lộ trình này thể hiện định hướng hiện tại của Unity đối với việc phát triển bộ sản phẩm của chúng tôi. Thông tin này chỉ nhằm mục đích cung cấp thông tin và không phải là cam kết cung cấp bất kỳ tính năng hoặc chức năng cụ thể nào. Thông tin này có thể được thay đổi bất cứ lúc nào. Unity không đưa ra bất kỳ bảo đảm nào về nội dung, thời điểm hoặc hình thức của các bản phát hành trong tương lai. Người dùng không nên dựa vào lộ trình này để đưa ra bất kỳ quyết định quan trọng nào đối với hoạt động kinh doanh.
